Để ngăn trang di chuyển, trong cả trục x và trục y, chúng tôi sử dụng thuộc tính overflow: hidden;
trong css.
Vì vậy, nếu chúng ta áp dụng điều này cho cơ thể,
body {
overflow: hidden !important;
}
Nó sẽ làm việc đúng không?
Thực tế, điều này thực sự không hiệu quả, bởi vì bạn vừa tắt tính năng cuộn x và y cho toàn bộ trang trong toàn bộ thời gian.
Để bỏ qua điều này, chúng tôi có thể sử dụng một chút javascript để thêm lớp vào nội dung khi phương thức hoạt động.
Trước tiên, chúng tôi phải thêm id vào cơ thể của chúng tôi, <body id="body">
điều này cho phép javascript nhận dạng nội dung.
Thứ hai, chúng tôi phải thêm id vào phương thức, <div id="modal">
, cũng cho phép javascript nhận dạng phương thức.
<script type="text/javascript">
function modalActive() {
if (document.getElementById("modal").classList.contains("active")) {
document.getElementById("body").classList.add("modal-active");
} else {
getElementById("modal").classList.remove("active"));
getElementById("body").classList.remove("modal-active"));
}
}
</script>
cho cả các nút mà ra mắt, và đóng phương thức, chúng ta phải thêm một sự kiện onclick,
<button onclick="modalActive()">Click Me!</button>
Ngày đầu đó chúng ta phải thêm video này vào file css.
body {
overflow: initial !important;
}
body.modal-active {
overflow: hidden !important;
}
Và ở đó chúng tôi đi.
Sử dụng DOMListener cho Chrome để nhận nhật ký thay đổi DOM. Tôi có 59 thay đổi khi mở phương thức và thêm 1 kiểu truy vấn phương tiện. Ngoài ra, hãy kiểm tra trình xử lý thay đổi kích thước. Posiiotn cố định hoặc tràn ẩn cũng có thể là vấn đề. – Pinal
Cảm ơn bạn @Pinal for reply! Tôi đã cố gắng để thêm động 'tràn: ẩn' vào cơ thể, nhưng nó không giúp đỡ trong trường hợp này. Có lẽ 'vị trí: cố định' là vấn đề. Bạn có thể giải thích thêm một chút về lý do tại sao nó có thể là vấn đề và làm thế nào tôi có thể sửa chữa nó. –
Chỉ cần nhận thấy rằng 'vị trí: cố định' có một số vấn đề trong bản vẽ CoreGraphics của iOS. Trong trường hợp của bạn, tôi khuyên bạn nên thay đổi tất cả 'vị trí: cố định' thành tuyệt đối và thử lại. Ngoài ra, bạn có thể tìm giải pháp trên github (ví dụ: https://github.com/scottjehl/Device-Bugs/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen++fixed++ios+) – Pinal