退出模式后如何重新激活滚动?
http://1ne-studio.com/test2/index.html
id:测试
通过:2015
在灰色子标题的右上角有一个链接可以打开模式。
通过在主体上添加类,我在模式打开时禁用了body
上的滚动
<script type="text/javascript">
$("#modal-name").mouseenter(function(){
$("body").css("overflow", "hidden");
$("body").addClass("modal-open");
}).mouseleave(function(){
$("body").removeClass("modal-open");
$("body").attr("overflow", "auto");
$("body").focus();
});
</script>
并禁用
fsvs.js
中的视差滚动(控制slideDown和Up)slideDown : function(e) {
if ($("body").hasClass("modal-open")) { return false; }
if( app.canSlideDown() ) {
ignoreHashChange = true;
app.slideToIndex( (currentSlideIndex+1), e );
} else {
scrolling = false;
}
},
/**
* [slideUp description]
* @return {[type]} [description]
*/
slideUp : function(e) {
if ($("body").hasClass("modal-open")) { return false; }
if( app.canSlideUp() ) {
ignoreHashChange = true;
app.slideToIndex( (currentSlideIndex-1), e );
} else {
scrolling = false;
}
},
但是从模式退出后,滚动将不会重新打开。
有什么办法可以解决这个问题?
最佳答案
我终于找到了答案..!
我仔细研究了问题并找到了解决方案。
这不是最好的解决方案,因为我还没有真正找到导致此问题的实际解决方案。但这确实给了我想要的结果。
我发现退出模态后,有一种方法可以解决此视差问题,那就是单击右侧的分页按钮。
所以我创造了
var e = new jQuery.Event("click");
e.offsetX = 100;
e.offsetY = 100;
$('#fsvs-pagination li.active').trigger(e);
这将使浏览器认为我单击了分页按钮,并将重新激活视差。
我尚未检查所有浏览器,但这可能解决了问题。
感谢您的所有支持,如果您找到了更好的解决方案,请告诉我。