Tôi đang sử dụng iScroll.js để cuộn qua băng chuyền của các mục trên trang dành cho thiết bị di động. Tôi thấy việc sửa chữa sau đó lắng nghe cho chuyển động thẳng đứng và dừng lại kịch bản iScroll nắm quyền kiểm soát, cho phép các cuộn dọc mẹ đẻ xảy ra:iScroll - Bảo quản cuộn dọc gốc - hoạt động trong iOS, không phải Android
onBeforeScrollStart: function(e) {
try {
point = e.touches[0];
pointStartX = point.pageX;
pointStartY = point.pageY;
} catch(e) {}
null;
},
onBeforeScrollMove: function(e) {
try {
deltaX = Math.abs(point.pageX - pointStartX);
deltaY = Math.abs(point.pageY - pointStartY);
if (deltaX >= deltaY) {
e.preventDefault();
} else {
null;
}
} catch(e) {}
}
Tôi đang sử dụng try {} catch {} vì nó có một số vấn đề khi kiểm tra trong một trình duyệt (phàn nàn về điểm không được xác định).
Sự cố tôi gặp phải là nó hoạt động tốt trên iOS, được thử nghiệm trên một số thiết bị i, nhưng trên Android thì không tốt lắm. Nếu người dùng cố gắng cuộn trang theo chiều dọc, bắt đầu bằng cách đặt ngón tay trên băng chuyền, trang không cuộn khi iScroll vẫn có quyền kiểm soát.
Bất kỳ ý tưởng nào về cách tôi có thể làm cho nó hoạt động trên Android hoặc bất kỳ gợi ý nào về việc nó có thể xảy ra ở đâu?
Chỉnh sửa:
Một số gỡ lỗi và tôi đã phát hiện ra lý do tại sao tính năng này không hoạt động. Các tọa độ đang được cập nhật trong khi người dùng chạm vào màn hình trên iOS, nhưng trên Android, chỉ có tập tọa độ đầu tiên bị bắt. Bất kỳ ý tưởng tại sao điều này sẽ được?
Bạn đã thử sử dụng 'myScroll.disable()' và 'myScroll.enable()'? –