2013-07-18 43 views
5

Tôi có một trang HTML đơn giản khi tôi chạm vào một div mà chúng tôi không thể cuộn. Bạn có thể tìm thấy trang này hereTắt di chuyển trên thiết bị di động

Nếu bạn mở trang này bằng trình duyệt trên máy tính để bàn, như firefox, nếu bạn giữ nhấp vào div bạn không thể cuộn.

Bây giờ tôi muốn hành vi này trên thiết bị di động, như Android. Trên thực tế trên Android nếu bạn mở trang này, bạn có thể cuộn trong mọi trường hợp.

Xin lỗi vì những màu sắc trong các ví dụ của tôi;)

+1

Tôi có thể cuộn trong cả Chrome & Firefox – ediblecode

+0

Giữ chuột nhấp và bạn sẽ không thể cuộn – Podelo

Trả lời

8

Tôi nghĩ rằng bạn đang yêu cầu làm thế nào để vô hiệu hóa cuộn trên các thiết bị di động:

Bạn có thể thêm một người biết lắng nghe sự kiện cho touchstarttouchmove. Sau đó, khi các sự kiện này được kích hoạt, hãy sử dụng Modernizr để phát hiện xem trình duyệt có phải là thiết bị cảm ứng hay không. Rõ ràng không phải tất cả điện thoại di động đều là thiết bị cảm ứng và có các thiết bị cảm ứng có độ phân giải cao, do đó bạn có thể thoải mái thêm hoặc vào câu lệnh if.

document.addEventListener('touchstart', this.touchstart); 
document.addEventListener('touchmove', this.touchmove); 

function touchstart(e) { 
    e.preventDefault() 
} 

function touchmove(e) { 
    e.preventDefault() 
} 

Hoặc, chỉ cần sử dụng Modernizr và sau đó sử dụng CSS:

html.touch body { 
    overflow:hidden; 
} 

Và sau đó thêm phương tiện truyền thông truy vấn để có hiệu quả có báo cáo hoặc.

+0

Cảm ơn câu trả lời, sự kiện touchstart và touchmove hoạt động tốt nhưng phương pháp preventDefault không hoạt động. Mã CSS với Modernizr cũng không hoạt động. Tôi đã cập nhật mã của mình để bạn có thể thử nghiệm trên thiết bị di động của mình. – Podelo

+0

@Podelo Xem cập nhật, tôi quên đặt 'e' làm tham số – ediblecode

+0

Ho chỉ là ... Cảm ơn rất nhiều nó hoạt động ngay bây giờ :) – Podelo

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