2011-10-28 19 views
7

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?

+0

Bạn đã thử sử dụng 'myScroll.disable()' và 'myScroll.enable()'? –

Trả lời

0

Dường như bạn không có "điểm" trong phạm vi của mình cho onBeforeScrollMove. Ngoài ra, một số thiết bị Android có thể gọi các sự kiện nhấp chuột qua multitouch (Tôi không thể xác nhận điều này, nhưng chỉ lý thuyết vì phân đoạn nền tảng)

Tôi có một kịch bản hay để sớm phát hành các sự kiện và mô phỏng một sự kiện multitouch duy nhất bằng cách sử dụng "chuột" làm thuộc tính định danh của liên lạc, có thể là một số trợ giúp w/gỡ lỗi. Tôi sẽ cố gắng để có dự án trực tuyến vào tối mai.

Đó là do đối với một số thông tin cập nhật và các dự án được bổ sung, nhưng đây là một liên kết:

https://github.com/skhameneh

EDIT: Correction, bạn thậm chí cập nhật "điểm"? Dường như nó nằm ngoài đoạn mã này và thay đổi bên trong. Có thể hữu ích nếu bạn đăng phần còn lại của mã.

0

Tác giả của iScroll thực sự có một cổng có vẻ hoạt động chính xác như bạn mô tả bằng cách phân trang theo chiều ngang và vẫn cho phép cuộn dọc. https://github.com/cubiq/2-way-iScroll

Các vấn đề liên quan