Trong ứng dụng Android của tôi, Người dùng có thể duyệt một số trang HTML bằng ViewPager và người dùng có thể chạm vào yếu tố để đánh dấu.Android - JavaScript: sự kiện touchstart không được kích hoạt cho đến khi thu phóng hoặc cuộn trang
vấn đề là khi cố gắng nhận sự kiện chạm bằng javascript sử dụng mã sau, elementFromPoint trả về null khi điều hướng đến trang mới, nhưng sau khi người dùng phóng to trang hoặc cuộn lên, nó hoạt động đúng.
Tôi thấy rằng đăng ký của sự kiện cảm ứng xảy ra sau khi thu phóng hoặc cuộn trang. vì vậy nó hoạt ngay sau đó mặc dù nó được đăng ký trên $ (document) .ready()
$(document).ready(function(){
document.addEventListener("touchstart", touchstart, false);
});
function touchstart(e) {
var x = e.targetTouches[0].clientX;
var y = e.targetTouches[0].clientY;
el = document.elementFromPoint(x, y);
}
Cảm ơn bạn
Cảm ơn bạn, Mã này hoạt động tốt, Nhưng tại sao? –
Cảm thấy khá hacky, nhưng nó hoạt động. Nhân tiện, nếu bạn đang làm hoạt hình WebView của mình từ màn hình ngoài, bạn sẽ cần phải chạy các dòng mã sau khi hoạt ảnh đã hoàn tất. Tôi thiết lập nó trong một phương thức onAnimationEnd của Animator.AnimatorListener() và nó hoạt động rất tốt. Tôi cũng xác nhận rằng nó hoạt động ngay cả khi nội dung của trang không đủ lớn để yêu cầu cuộn. –
Brian - bạn có nhớ nếu webview là màu trắng nếu bạn không đợi hoạt ảnh hoàn thành và được gọi là phương pháp phóng to/thu nhỏ? –