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