删除div后jquery失去滚动功能

时间:2013-11-09 17:40:56

标签: jquery html scroll

我创建了一个脚本,用于在jquery中附加灯箱,然后在点击时将其删除。

我在谷歌浏览器上观察到一种奇怪的行为。 如果我在灯箱关闭时用鼠标滚轮滚动,那么在我无法滚动我的主div之后(我为我的网站滚动div,而不是滚动身体)。我需要点击我的div再次滚动它。 如果我在灯箱关闭时没有触摸我的鼠标滚轮那么一切正常,我可以正常滚动我的div .... 我也观察到preloader div的这种行为。 最后,当我删除一个比主要可滚动div大的z-index的div(滚动时)时,总会出现这个bug ...

我的可滚动div和灯箱的CSS:

#inner-container {
    position: relative;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 4;
    height: 100%;
    width: 100%;
}
.light-box-container {
    position: fixed;
    display: table;
    overflow: hidden;
    vertical-align: baseline;
    z-index: 9999;
    width: 100%;
    min-width: 320px;
    height: 100%;
    margin: 0;
    opacity: 0;
    background: rgba(0,0,0,0.8);
    cursor: pointer;
    -webkit-transition: all 0.3s ease-in-out;
    -moz-transition: all 0.3s ease-in-out;
        -o-transition: all 0.3s ease-in-out;
        -ms-transition: all 0.3s ease-in-out;
        transition: all 0.3s ease-in-out;
}

关闭灯箱的脚本:

$(document).on('click touchend', function(e) {
    var $this = e.target;
    if ( $this.className == 'light-box-container light-box-anim' || $this.className == 'light-box-inner light-box-inner-anim' || $this.className == 'icon-remove') {
        $(lightboxImage).removeClass(lightboxAnimIn);
        $(lightboxInner).removeClass(lightboxAnimIn);
        setTimeout(function() {
            $(lightboxContainer).removeClass(lightboxAnim);
        }, 300);
        setTimeout(function() {
            $(lightboxContainer).remove();
            lightboxId++;
        }, 700);
    }
})

我不知道这是一个谷歌Chrome错误,还是由于我的脚本。 我真的不知道如何解决它。 我试图触发点击或焦点我的可滚动div但它不起作用。

0 个答案:

没有答案