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

时间:2015-04-28 03:55:07

标签: javascript jquery html css modal-dialog

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

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;
    }
},

但是从模态退出后,滚动将不会重新开启..

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

我最终找到了答案..!

我仔细研究了这个问题并找到了解决方法。 这不是最好的解决方案,因为我还没有真正找到导致这个问题的实际问题的解决方案..但这确实给了我想要的结果。

我发现退出模态后,有一种方法可以解决这个视差问题,它点击了右侧的分页按钮。

所以我创造了

             var e = new jQuery.Event("click");
        e.offsetX = 100;
        e.offsetY = 100;
        $('#fsvs-pagination li.active').trigger(e);

这将使浏览器认为我点击了pagenation按钮并将重新激活视差。

我还没有检查过每个浏览器,但这可能解决了这个问题。

感谢您的支持,如果您找到了更好的解决方案,请与我们联系。