İle çalıştım <body>
ve<div class="wrapper">
Pop-up açıldığında ...
<body>
yüksekliği% 100 ve taşma: gizli
<div class="wrapper">
konumu alır: göreli; taşma: gizli; yükseklik:% 100;
Sayfanın gerçek kaydırma konumunu almak için JS / jQuery kullanıyorum ve değeri gövdeye veri özniteliği olarak depoluyorum
Sonra .wrapper DIV'deki kaydırma konumuna gidiyorum (pencerede değil)
İşte benim çözümüm:
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%;}
Her iki tarafta da iyi çalışıyor ... masaüstü ve mobil (iOS).
İpuçları ve iyileştirmeler açığız :)
Şerefe!