Tôi có một ứng dụng dựa trên web bao gồm một thành phần mà người dùng có thể cuộn lên và xuống bằng ngón tay của họ. Tôi sử dụng phương pháp preventDefault của sự kiện để ngăn chặn hành vi mặc định khi di chuyển cảm ứng dịch chuyển toàn bộ màn hình xung quanh trên các thiết bị iOS.Làm cách nào để ngăn chặn hành vi mặc định của sự kiện touchmove trong iOS 5?
Thật không may điều này dường như không hoạt động nữa trong iOS 5 mà tôi vừa mới nâng cấp lên sáng nay. Tôi phải giả định rằng điều này chỉ được thực hiện khác nhau trong iOS 5, nhưng tôi vẫn chưa thể tìm thấy một tài nguyên cung cấp hướng dẫn.
Cảm ơn!
Cập nhật # 1: Tôi không thể tìm thấy câu trả lời cho câu hỏi cụ thể của mình, nhưng tôi có thể điều chỉnh mã của mình một chút để sử dụng kiểu cuộn -webkit-cuộn (được đặt thành giá trị "chạm ") và thực hiện khả năng di chuyển quán tính snazzy (nơi nội dung cuộn nhanh hơn tùy thuộc vào tốc độ của swipe của bạn và sẽ" cao su ban nhạc trả lại "... Điện thoại
Cập nhật # 2: Bây giờ tôi có một vấn đề lạ khác.Vì một số lý do kỳ lạ rằng hành vi di chuyển tràn bị trộn lẫn đôi khi nhờ đó bạn phải kéo ngón tay sang trái và phải qua phần tử chứa để làm cho nội dung của nó di chuyển lên và xuống. để tìm hiểu lý do tại sao điều này xảy ra - có ai có bất kỳ ý tưởng nào không?
có lẽ bạn có thể làm một số logic kiểm tra như 'if ($ (e.currentTarget) .css ('tràn') = 'cuộn'!) e .preventDefault(); '. Vì document.ontouchmove sẽ kích hoạt sau ontouchmove của phần tử scollable, bạn có thể làm 'el.ontouchmove = function() {allowScroll = true}' và sau đó có 'document.ontouchmove' sử dụng giá trị đó để xác định hành động và sau đó đặt giá trị trở lại thành sai. –
@BrianNickel Cảm ơn lời khuyên. Đây là một bước đi đúng hướng cho phép bạn ngăn chặn việc di chuyển trực tiếp trên cơ sở từng phần tử (bao gồm việc cuộn trực tiếp trên cơ thể), nhưng nếu người dùng chạm vào một phần tử có thể cuộn đã ở cạnh của cuộn của nó phạm vi, nó vẫn sẽ kết thúc cuộn cơ thể (hiển thị lanh màu xám bên dưới). Có lẽ cách duy nhất để giải thích hướng của touchmove và kiểm tra xem phần tử có nằm ở rìa phạm vi có thể cuộn của nó không? –
@RyanRapp Cảm ơn bạn đã trả lời.Tôi có lẽ đã không mô tả rõ ràng về hành vi mà tôi đang nói đến. Với iOS 4, tôi sẽ sử dụng e.preventDefault() trong phần tử (ví dụ, DIV) với trình xử lý sự kiện touchmove của tràn để tôi có thể dịch chuyển nội dung xung quanh thông qua định vị tuyệt đối dựa trên chuyển động của ngón tay bên trong phần tử. Bây giờ e.preventDefault() chặn nó khi tôi cố gắng di chuyển ngón tay của tôi toàn bộ trang, mà không có đủ nội dung để cuộn, không di chuyển quá nhiều nhưng di chuyển xung quanh để bạn có thể thấy kết cấu nền của Safari đằng sau nó. – natlee75