Tôi đã làm việc với <body>
và<div class="wrapper">
Khi cửa sổ bật lên mở ...
<body>
có chiều cao 100% và tràn: ẩn
<div class="wrapper">
được vị trí: tương đối; tràn: ẩn, chiều cao: 100%;
Tôi sử dụng JS / jQuery để có được khả năng cuộn trang thực tế và lưu trữ giá trị dưới dạng dữ liệu do cơ thể
Sau đó, tôi cuộn đến vị trí cuộn trong .wrapper DIV (không có trong cửa sổ)
Đây là giải pháp của tôi:
JS / jQuery:
// when popup opens
$('body').attr( 'data-pos', $(window).scrollTop()); // get actual scrollpos
$('body').addClass('locked'); // add class to body
$('.wrapper').scrollTop( $('body').attr( 'data-pos' ) ); // let wrapper scroll to scrollpos
// when popup close
$("body").removeClass('locked');
$( window ).scrollTop( $('body').attr( 'data-pos' ));
CSS:
body.locked {position:relative;overflow:hidden;height:100%;}
body.locked .wrapper {position:relative;overflow:hidden;height:100%;}
Nó hoạt động tốt trên cả hai mặt ... máy tính để bàn và thiết bị di động (iOS).
Mẹo và cải tiến đều được chào đón :)
Chúc mừng!