2012-06-14 29 views
5

Tôi đã tạo một trang web có cảnh đường phố sai. Xem here để có phiên bản đã lưu trữ.Sự kiện cuộn trên Trình duyệt Android không kích hoạt. Cần giải quyết sự cố

Nó hoạt động tốt trên tất cả các trình duyệt máy tính để bàn lớn và Safari Mobile. Nó hoạt động tốt trong Mobile Firefox và Chrome cho Android Beta. Tuy nhiên trình duyệt Android mặc định có vấn đề với sự kiện cuộn. Hãy để tôi được rõ ràng. Cuộn không phải là vấn đề. The div cuộn theo yêu cầu. Cuộn sự kiện không kích hoạt. Vấn đề này tôi trải nghiệm trên Honeycomb cũng như ICS.

Tôi không quan tâm đến các trình duyệt di động khác vì kích thước màn hình thiết bị di động thường không thấy cảnh thị sai; mediaqueries và tải JavaScript có điều kiện sẽ giải quyết vấn đề đó. Thiết kế đáp ứng và tất cả nhạc jazz đó.

Về cơ bản, tôi đã viết một plugin jQuery (parallise() song song định vị từng hình ảnh dựa trên vị trí của nó và 'chiều sâu'. Chức năng này bị ràng buộc với sự kiện cuộn.

Trên trình duyệt Android, sự kiện này chỉ kích hoạt khi bắt đầu lần chạm tiếp theo, thay vì liên tục.

OK, vì vậy tôi nghĩ rằng có lẽ nếu tôi ràng buộc chức năng với các sự kiện touchstart, touchmovetouchend tôi sẽ giải quyết được vấn đề của mình. Không có điếu xì gà. Other touch events are also bugged. Áp dụng cách giải quyết được đề xuất khiến các sự kiện phát sinh, nhưng khi tôi phải e.preventDefault(), việc di chuyển (toàn bộ điểm tập thể dục) bị tắt.

Nếu tôi chỉ thăm dò ý kiến ​​vị trí của div giai đoạn so với div cửa sổ thì sao? Chỉ ra rằng thông tin vị trí chỉ được cập nhật khi bắt đầu lần chạm tiếp theo.

Tôi đang ở cuối thời hạn của mình. Bất kì sự trợ giúp nào đều được đánh giá cao.

+0

Ok, tôi phải sử dụng tên miền thử nghiệm cho một trang web khác nhau. Nếu bất cứ ai muốn giúp đỡ với vấn đề này, xin vui lòng để lại một bình luận và tôi sẽ đưa nó lên một lần nữa. Trang web cũng trực tuyến tại [smartdevice.co.za] (http://smartdevice.co.za) nhưng chế độ xem không được đặt thành '960px'. Chúng tôi đã nói khá nhiều với khách hàng rằng đây là vấn đề về trình duyệt mà chúng tôi không kiểm soát được và tác động của vấn đề bị giới hạn đối với máy tính bảng Android chỉ chạy trình duyệt mặc định. Tuy nhiên, vì lợi ích của hậu thế, nếu bạn biết giải pháp, vui lòng để lại nhận xét. –

+0

Bạn đã từng giải quyết vấn đề này chưa? – IamDeveloper

+0

Thật không may là không. Một số mã được sử dụng bởi khá nhiều sự kiện cảm ứng không hoạt động như mong đợi, vì vậy tôi không thể tạo ra một giải pháp thay thế, bởi vì tất cả chúng đều phụ thuộc vào sự kiện chạm vào một thời điểm nào đó. BTW các trang web được đề cập trong một bình luận trước đó không còn chứa mã của tôi, như chúng tôi đã sa thải khách hàng.Một bản sao của trang web là lên tại http://xandor.co.za/smartdevice –

Trả lời

1

Ngay cả khi các sự kiện liên lạc hoạt động chính xác trên các phiên bản Android bị lỗi, và sau đó bạn có thể theo dõi vị trí cuộn tự nhiên một cách hiệu quả trong khi kéo, điều này sẽ dễ bị lỗi. Ví dụ, nó sẽ không tính đến hoạt hình động lượng xảy ra sau khi chạm vào đã kết thúc.

iOS và Android hy sinh để cải thiện hiệu suất cuộn. Trên cả hai nền tảng, không thể có được vị trí cuộn chính xác cho đến khi cuộn xong. Sự kiện cuộn (trên <body>) không kích hoạt cho đến khi hoạt ảnh động lực kết thúc. Vì vậy, trong khi câu hỏi ban đầu của bạn là về các sự kiện cuộn trên một tràn <div>, sửa chữa điều này có thể không hoàn toàn hữu ích cho bạn anyway.

Nếu bạn muốn hoạt ảnh cập nhật kịp thời với cuộn, thì bạn cần thực hiện cuộn theo chương trình thay vì sử dụng cuộn gốc của trình duyệt. Thư viện tốt nhất để làm điều này là iScroll. Bạn có thể đạt được hiệu ứng thị sai rất dễ dàng như đã thấy trong this demo.

Nếu bạn cần các hiệu ứng phức tạp hơn (ký tự đi bộ, trong ví dụ), bạn có thể chọn phiên bản "thăm dò" của iScroll cho phép bỏ phiếu pixel hoàn hảo cho vị trí cuộn để giảm hiệu suất.

Tuy nhiên, có rất nhiều nhược điểm với việc sử dụng iScroll:

  • Bạn có thể cần phải thay đổi đánh dấu và phong cách
  • Đó là chi phí không cần thiết cho các trình duyệt máy tính để bàn, nhưng do sự thay đổi đánh dấu của bạn có thể khó khăn để sử dụng chỉ như một dự phòng
  • Cuộn sẽ không cảm thấy hoàn hảo - trên iOS, với hiệu suất cuộn thường tuyệt vời của nó - sự khác biệt nhỏ trong tính toán động lượng có thể cảm thấy chói tai. Trên Android, việc cuộn có thể trở nên tụt hậu hơn bình thường.
Các vấn đề liên quan