在 body fadeOut 之前存储滚动位置,然后在 body fadeIn 之后 return 滚动位置?
Store scroll position before body fadeOut, then return scroll position after body fadeIn?
我想为移动菜单创建一个不错的滚动体验,我的想法是 .fadeIn 菜单,并使用 .fadeOut 淡出主站点包装,这样你就可以为移动设备获得更好的弹性滚动,没有故障位置:fixed/body 滚动到甚至在 iOS 10 和 Android.
上仍在发生的业务下方
显然,当包装器为 display:none 时,主体变为视口的高度,将页面跳到顶部,是否可以 return 一旦包装器具有旧滚动位置淡入淡出?
Fiddle 这里:https://jsfiddle.net/y1goy3b2/
任何帮助或问题都会很棒!
干杯
<div class="menu" id="open-menu">
<div class="menu-bttn">
</div>
</div>
<div class="mob-menu">
</div>
<div class="site-wrapper">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Prodest, inquit, mihi
eo esse animo. Non dolere, inquam, istud quam vim habeat postea videro; Et
ille ridens: Video, inquit, quid agas; Hinc ceteri particulas arripere conati
suam quisque videro voluit afferre sententiam. Inde sermone vario sex illa
</p>
</div>
<script>
$('#open-menu').click(function() {
$('.site-wrapper').fadeToggle('fast');
$('.mob-menu').fadeToggle('fast');
});
</script>
我已经更新了你的fiddle。请检查 this
var oldScrollposition = 0;
$('#open-menu').click(function() {
if($('.site-wrapper').is(":visible")){
oldScrollposition = $(document).scrollTop();
}
$('.site-wrapper').fadeToggle('fast');
$('.mob-menu').fadeToggle('fast');
$(document).scrollTop(oldScrollposition);
});
我想为移动菜单创建一个不错的滚动体验,我的想法是 .fadeIn 菜单,并使用 .fadeOut 淡出主站点包装,这样你就可以为移动设备获得更好的弹性滚动,没有故障位置:fixed/body 滚动到甚至在 iOS 10 和 Android.
上仍在发生的业务下方显然,当包装器为 display:none 时,主体变为视口的高度,将页面跳到顶部,是否可以 return 一旦包装器具有旧滚动位置淡入淡出?
Fiddle 这里:https://jsfiddle.net/y1goy3b2/
任何帮助或问题都会很棒!
干杯
<div class="menu" id="open-menu">
<div class="menu-bttn">
</div>
</div>
<div class="mob-menu">
</div>
<div class="site-wrapper">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Prodest, inquit, mihi
eo esse animo. Non dolere, inquam, istud quam vim habeat postea videro; Et
ille ridens: Video, inquit, quid agas; Hinc ceteri particulas arripere conati
suam quisque videro voluit afferre sententiam. Inde sermone vario sex illa
</p>
</div>
<script>
$('#open-menu').click(function() {
$('.site-wrapper').fadeToggle('fast');
$('.mob-menu').fadeToggle('fast');
});
</script>
我已经更新了你的fiddle。请检查 this
var oldScrollposition = 0;
$('#open-menu').click(function() {
if($('.site-wrapper').is(":visible")){
oldScrollposition = $(document).scrollTop();
}
$('.site-wrapper').fadeToggle('fast');
$('.mob-menu').fadeToggle('fast');
$(document).scrollTop(oldScrollposition);
});