Javascript Jquery鼠标滚轮与触摸板水平滚动
我正在使用jquery.mousewheel.js插件构建一个水平滚动网站。到目前为止,它仍然有效,但我无法找出一个问题: 如果我使用触控板(例如MacBook Pro上的触控板)并用两个手指水平滚动,这取决于手指的平行位置,则该站点将被卡住或无法确定其滚动方向 有没有办法使这个水平卷轴也工作顺利 这是我在头部使用的代码:Javascript Jquery鼠标滚轮与触摸板水平滚动,javascript,jquery,scroll,mousewheel,Javascript,Jquery,Scroll,Mousewheel,我正在使用jquery.mousewheel.js插件构建一个水平滚动网站。到目前为止,它仍然有效,但我无法找出一个问题: 如果我使用触控板(例如MacBook Pro上的触控板)并用两个手指水平滚动,这取决于手指的平行位置,则该站点将被卡住或无法确定其滚动方向 有没有办法使这个水平卷轴也工作顺利 这是我在头部使用的代码: $(function () { $("html, body, *").mousewheel(function (event, delta) { thi
$(function () {
$("html, body, *").mousewheel(function (event, delta) {
this.scrollLeft -= (delta * 5);
this.scrollRight -= (delta * 5);
event.preventDefault();
});
});
在这里,我的jsfiddle谈到了重建后的情况:即使这个问题已经提出了几个月,我也会留下一些对我有用的东西 这个想法是,轨迹板通常在X和Y轴上同时移动,因此如果我们在滚轮侦听器中检测到水平移动,它很可能是轨迹板。请注意,您只需要向左调整,而不需要同时向左和向右调整
$(".container").mousewheel( function(e, delta) {
if( Math.abs(e.deltaX) ) {
this.scrollLeft -= (e.deltaX * 20);
} else {
this.scrollLeft -= (e.deltaY * 20);
}
e.preventDefault();
});
你还记得X轴上有一个运动,然后只对该轴作出一秒钟左右的反应:
var timeout, trackpad = false;
$(".modernlayout .wrapper").mousewheel( function(e, delta) {
if( trackpad || Math.abs(e.deltaX) ) {
// probably using trackpad
// only respond on X axis for a second
trackpad = true; clearTimeout( timeout );
timeout = setTimeout(function(){ trackpad = false; }, 1000);
// use a smaller multiplier
this.scrollLeft -= (e.deltaX * 10);
} else {
// most likely not trackpad
this.scrollLeft -= (e.deltaY * 20);
}
e.preventDefault();
});
看起来好像没有,因为你把向上和向左、向下和向右等同起来,那么当用户向上和向右滚动,或者向下和向左滚动时会发生什么呢?它们相互矛盾。好的,谢谢,这是有道理的。你知道有没有办法禁用轨迹板和鼠标(如苹果鼠标)的水平滚动,以便只使用垂直滚动?