Я працював з <body>
і<div class="wrapper">
Коли відкриється спливаюче вікно ...
<body>
отримує висоту 100% і перелив: приховано
<div class="wrapper">
отримує положення: відносне; перелив: прихований; висота: 100%;
Я використовую JS / jQuery, щоб отримати фактичну прокрутку сторінки та зберігати значення як присвоєння даних тілу
Потім я прокручую до прокрутки в .wrapper DIV (не у вікні)
Ось моє рішення:
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%;}
Він добре працює з обох сторін ... настільний і мобільний (iOS).
Поради та вдосконалення вітаються :)
Ура!