Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Có sự kiện cuộn (scroll event) cho iPhone/iPad trong JavaScript không?

Có. iOS Safari hỗ trợ sự kiện scroll (và onscroll) cho việc cuộn trang. Tuy nhiên, hành vi khác biệt so với desktop do cơ chế "one-finger scrolling" và "two-finger scrolling" trong iframe/overflow.

Các kiểu cử chỉ (gestures) trên iOS

Có sự kiện cuộn (scroll event) cho iPhone/iPad trong JavaScript không?
Panning gesture (vuốt một ngón) – Cuộn trang

Có sự kiện cuộn (scroll event) cho iPhone/iPad trong JavaScript không?
Touch and hold (chạm giữ) – Menu ngữ cảnh

Lưu ý quan trọng cho dev

  • Sự kiện scroll trên iOS không fire liên tục khi đang cuộn (chỉ fire khi dừng) do tối ưu hiệu năng – khác desktop.
  • Dùng touchmove để theo dõi real-time, nhưng cần passive: false và preventDefault() cẩn thận.
  • position: fixed hành vi kỳ lạ khi bàn phím ảo hiện ra.
  • CSS -webkit-overflow-scrolling: touch bật momentum scrolling cho container con.

Ví dụ lắng nghe scroll

window.addEventListener('scroll', function() {
  console.log('Đang cuộn / vừa dừng cuộn', window.scrollY);
}, { passive: true });