Tôi cần giữ cho độ lệch cuộn của phần tử được đồng bộ với phần tử khác (cửa sổ thực sự) và tôi đang gặp sự cố trong giai đoạn "cuộn" quán tính cuộn trên Mobile Safari (iPad).Làm thế nào để đồng bộ hóa độ lệch cuộn của hai phần tử khi di chuyển quán tính
Tôi có một vài divs với position:fixed; overflow:hidden
và tôi cần phải giữ cuộn của họ bù đắp đồng bộ với một của sổ Thông thường tôi muốn mã hóa nó như thế này (jQuery) (có nghĩa là toàn bộ cuộn cơ thể.):
var $win = $(window),
$div1 = $(...)
$win.scroll(function() {
$div1.scrollTop($win.scrollTop())
})
Nhưng thử nghiệm giao diện trên iPad, tôi nhận thấy rằng div không được cập nhật trong giai đoạn cảm ứng, khi bạn đang kéo trang ảo bằng ngón tay, cũng như trong giai đoạn quán tính, khi bạn rời trang và chậm lại.
Tôi đã giải quyết nó cho giai đoạn kéo bằng cách đăng ký trình xử lý cho sự kiện touchmove
cũng như sự kiện scroll
.
Nhưng tôi không thể tìm cách giải quyết vấn đề cho giai đoạn quán tính. Các div vẫn còn (và đi từ từ đồng bộ với phần còn lại của trang) cho đến khi các phong trào quán tính đến một điểm dừng đầy đủ, khi sự kiện di chuyển cuối cùng đã bị sa thải và nó bỏ qua vào vị trí.
Cố gắng di chuyển nó trên một iPad để xem "scolling quán tính" vấn đề. Thật không may tôi không thể làm cho nó hoạt động trên jsFiddle, do hành vi kỳ lạ của iPad với cuộn iframe.
Nếu tôi chỉ có thể chạy một cuộc thăm dò trong giai đoạn đó, tôi có thể giữ một semblance đồng bộ hóa giữa hai yếu tố. Tôi đã thử với setTimeout
, setInterval
và requestAnimationFrame
, nhưng không ai trong số họ kích hoạt trong giai đoạn cuộn quán tính. Dường như tất cả các điểm dừng Javascript trong giai đoạn đó.
Câu hỏi:
- Có bất kỳ liên lạc hoặc sự kiện cuộn sa thải trong giai đoạn di chuyển quán tính?
- Có bất kỳ cách nào để chạy cuộc gọi lại Javascript trong giai đoạn đó không?
- Có cách nào để đồng bộ hóa độ lệch cuộn của hai phần tử (X hoặc Y, không phải cả hai) bằng cách sử dụng CSS hoặc một số công nghệ khác ngoài JS?
Thực tế có nên thêm các phần tử div làm phần tử con vào lớp cuộn không? –
Bạn có ý nghĩa gì với "lớp cuộn"? Phần tử được cuộn là cửa sổ, đó là toàn bộ cơ thể. Các div cố định nằm bên trong cơ thể, có, nhưng chúng có 'vị trí: cố định'. – Tobia
Tôi về cơ bản sẽ thông tin tôi nhận được ở đây http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/CreatingBasicScrollViews/CreatingBasicScrollViews.html # // apple_ref/doc/uid/TP40008179-CH101-SW1 –