2011-11-03 37 views
18

Tôi có một trang HTML có chiều cao cố định div nên được cuộn (chỉ theo chiều dọc). Trong iOS 5 này có thể đạt được sử dụng:Vấn đề với cuộn trong iOS 5 bằng cách sử dụng -webkit-overflow-scrolling

overflow-y: auto; 
-webkit-overflow-scrolling: touch; 

Các div chứa một danh sách có thứ tự với khoảng 10 mặt hàng.

Các công trình cuộn, nhưng đôi khi nó cuộn chỉ khi tôi vuốt ngón tay theo đường chéo hoặc thậm chí theo chiều ngang và không theo chiều dọc như trước.

Tôi tự hỏi liệu có ai gặp sự cố này không. Tôi không muốn nghĩ rằng đó là một lỗi trong iOS5, nhưng tôi không thể tìm ra những gì tôi đang làm sai bởi vì hầu hết thời gian nó hoạt động tốt.

+0

Chúng tôi có thể nhận được liên kết demo không? – Charlie

+1

Bạn có tìm thấy bản sửa lỗi hoặc giải pháp thay thế không? Tôi chạy vào cùng một vấn đề và không thể có được đầu của tôi xung quanh nó ... – JohannesD

+0

Tôi bắt đầu một tiền thưởng để tôi có thể cung cấp cho nó [paul] (http://stackoverflow.com/a/8707635/458193). –

Trả lời

10

Tôi đã gặp sự cố tương tự. Vấn đề hóa ra là do hai iframe kích thước bằng không mà trang web của tôi sử dụng để theo dõi các thay đổi lịch sử và các tập lệnh tải. Loại bỏ những vấn đề này. Tôi đã gửi một lỗi với táo, chờ đợi để nghe lại từ họ.

Kiểm tra xem bạn có bất kỳ iframe nào trên trang của bạn có thể là nguyên nhân hay không.

+0

Bạn có nghe thấy gì từ Apple không? Hay bạn đã tìm được cách giải quyết khác hơn là loại bỏ các iframe? Tôi đã gặp phải sự cố này khi cố gắng tải -webkit-overflow-scrolling để làm việc với [tag: vaadin]. – JohannesD

+0

Bump về điều này, nhìn thấy một vấn đề tương tự: http://stackoverflow.com/questions/10718296/ios5-overflow-scrolling-horizontally-is-controlled-by-vertical-touch Lật giữa chân dung và phong cảnh dường như để khắc phục vấn đề. Không có ý tưởng nguyên nhân mặc dù (không có iframe trên trang của tôi). – middric

+0

không, lật không thay đổi bất cứ điều gì - ít nhất là đối với tôi – Thariama

2

Bạn cần phải đặt thiết lập css này trong file css của bạn - một trong những bạn nạp bằng cách sử dụng biến content_css cấu hình:

body { 
    -webkit-transform: translate3d(0, 0, 0); 
} 

Các tùy chọn khác là để thiết lập các css trực tiếp từ mã trên TinyMCE khởi:

$(tinymce.activeEditor.getBody()).css('-webkit-transform', translate3d(0, 0, 0)); 
+0

Đã không làm việc cho tôi. –

4

tôi đã tìm thấy một giải pháp hacky nhưng nó cần javascript ...

tôi stumbled khi vấn đề đó trong khi tải các nút cuộn qua ajax và nối chúng với js.

tôi phát hiện ra rằng đặt lại thuộc tính -webkit-overflow-scrolling với js lưu trong ngày

JS Mã sản phẩm:

var myDiv = $('.myDiv'); 
myDiv.css('-webkit-overflow-scrolling','auto'); 
function fn(){ 
    myDiv.css('-webkit-overflow-scrolling','touch'); 
} 
setTimeout(fn,500); 

Nó thực sự sucks rằng chúng ta phải gọi phương thức setTimeout nhưng đó là cách duy nhất tôi có thể nghĩ ra ...

EDIT: Coi chừng display:none

Webkit overflow scrolling touch CSS bug on iPad

+0

CẢM ƠN BẠN! Nó là hacky, nhưng theo như tôi là có liên quan, đây là một lỗi iOS ở nơi đầu tiên. –

2

Tôi gặp sự cố tương tự trong iOS 5.1.1 và hóa ra là do một yếu tố giả ::after giả với position: fixed nằm trên một phần tử chứa danh sách cuộn thể hiện hành vi "trục cuộn sai". Details here.

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