我创建了一个脚本来在 jquery 中附加一个灯箱,然后在单击时将其删除。
我只在 google chrome 上观察到了一个奇怪的行为。如果我在灯箱关闭时用鼠标滚轮滚动,那么在我无法滚动我的主 div 之后(我为我的网站滚动一个 div,而不是正文)。我需要单击我的 div 再次滚动它。如果在灯箱关闭时我没有触摸鼠标滚轮,那么之后一切正常,我可以正常滚动我的 div.... 我也观察到预加载器 div 的这种行为。最后,当我删除一个 z-index 大于主可滚动 div 的 div(滚动时)时,总是会出现这个错误......
我的可滚动 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);
}
})
我不知道这是否是谷歌浏览器的错误,或者是由于我的脚本。我真的不知道如何解决它。我试图触发点击或专注于我的可滚动 div 但它不起作用。