Javascript Fancybox插件和$(窗口)。滚动

Javascript Fancybox插件和$(窗口)。滚动,javascript,jquery,scroll,fancybox,Javascript,Jquery,Scroll,Fancybox,我使用的是fancybox插件,没有按窗口高度调整图像大小。画廊图像的分辨率正确,高度约为800-2000px。所以用户应该滚动堆栈中的每个图片。为了方便起见,我决定插入一个滚动按钮。但它不起作用,因为fancybox以某种方式阻止了滚动事件。我刚刚尝试通过执行以下操作重新创建滚动事件: $(window).scroll(function() { alert('Scroll'); }); 但它也不起作用。尝试与绑定 您也可以使用vanilla javascript来实现此目的: win

我使用的是fancybox插件,没有按窗口高度调整图像大小。画廊图像的分辨率正确,高度约为800-2000px。所以用户应该滚动堆栈中的每个图片。为了方便起见,我决定插入一个滚动按钮。但它不起作用,因为fancybox以某种方式阻止了滚动事件。我刚刚尝试通过执行以下操作重新创建滚动事件:

$(window).scroll(function() {
    alert('Scroll');
});
但它也不起作用。

尝试与绑定


您也可以使用vanilla javascript来实现此目的:

window.onscroll = function () {
    alert('Scroll');
}

我想您应该在fancybox(
afterShow
)回调中初始化scrollToTop按钮,如:

afterShow: function() {
    $("#scrollButtonID").on("click", function() {
        $(".fancybox-overlay").scrollTop(0); // or whatever value
    });
}
请注意我们不是以
$(窗口)
为目标,而是实际移动到fancybox覆盖层的顶部
$(“.fancybox覆盖层”)

请参见此

在我的演示中,我将按钮设置为fancybox覆盖的附加元素,但您也可以将其设置为fancybox的
标题。为了实现更平滑的过渡,您可以
设置滚动事件的动画,但这是装饰性的;)

FancyBox-jQuery插件 版本:1.3.4(11/11/2010)

从1073到1083行,我禁用了部分代码

 /*if ($.fn.mousewheel) {
        wrap.bind('mousewheel.fb', function(e, delta) {
            if (busy) {
                e.preventDefault();

            } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) {
                e.preventDefault();
                $.fancybox[ delta > 0 ? 'prev' : 'next']();
            }
        });
    }*/

非常感谢,肯尼迪!这对我帮助很大。我甚至没有想过要滚动
.fanСñbox overlay
:)
 /*if ($.fn.mousewheel) {
        wrap.bind('mousewheel.fb', function(e, delta) {
            if (busy) {
                e.preventDefault();

            } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) {
                e.preventDefault();
                $.fancybox[ delta > 0 ? 'prev' : 'next']();
            }
        });
    }*/