退出模式后如何重新激活滚动?

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);


这将使浏览器认为我单击了分页按钮,并将重新激活视差。

我尚未检查所有浏览器,但这可能解决了问题。

感谢您的所有支持,如果您找到了更好的解决方案,请告诉我。

09-10 10:28
查看更多