Tôi đang tạo một ứng dụng web toàn màn hình sẽ có một số mô-đun/tiện ích sử dụng tính năng tràn 5 của iOS mới: các tính năng cuộn. Điều tôi muốn là vô hiệu hóa hiệu ứng 'bouncy' đó khi cuộn html/body (vì nó là toàn màn hình) nhưng chỉ giữ hiệu ứng đó trên các phần tử có thể cuộn.chỉ tắt cuộn bouncy cho html nhưng vẫn duy trì các phần tử bị tràn: cuộn
làm mịn ảnh hưởng của các yếu tố cuộn Tôi có:
html, body { overflow: hidden; }
.scrollable {
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
và sau đó kịch bản sau đó vô hiệu hóa các hiệu ứng cảm ứng cuộn:
$(document).bind('touchmove', function (e) {
if (e.target === document.documentElement) {
e.preventDefault();
}
});
mặc dù điều này dường như không làm việc ở tất cả các , bởi vì khi di chuyển một phần tử đến cuối dưới cùng hoặc đầu nó cũng cuộn các documentElement
.
Có cách nào để chỉ vô hiệu hóa hiệu ứng đó cho phần tử html của cơ thể không?
Dưới đây là một ví dụ tốt về cách này ảnh hưởng đến các chức năng:
http://dl.dropbox.com/u/1928164/ios5/index.html
Tôi không nghĩ trình xử lý sự kiện của bạn sẽ bao giờ chạm vào preventDefault() vì mục tiêu là phần tử kích hoạt sự kiện, không bao giờ có thể là document.documentElement (). Vì vậy, bạn đang nhìn thấy hành vi tương tự như thể bạn không có trình xử lý sự kiện. – ThinkingStiff
sẽ là 'currentTarget' tôi sợ. mục tiêu có thể trả lại bất cứ điều gì bên trong nó, bạn có thể muốn thử;) – zanona
currentTarget trả về phần tử với trình nghe, chứ không phải phần tử đã ném sự kiện. – ThinkingStiff