触控板上的双指滚动js

我们已经开发了一个具有水平方向的网站,并且想要用两个手指向左/向右移动来实现触摸板控制。

在触摸板上向左/向右移动两根手指时,网站页面将向左/向右滚动。 现在我们实现了触摸板控制,两个手指向上/向下移动,页面向左/向右滚动。

如何使用两个手指从上/下移动到左/右以使用js或jQuery向左/向右滚动网页页面来更改触摸板控制?

通常,当您想要接管脚本中的触摸事件时,可以添加类似这样的内容以防止通常的滚动和缩放:

$("body").bind("touchstart", function(e) { e.preventDefault(); }) 

我可能有点晚了,但在我偶然发现这个问题之前有同样的问题。 稍微进一步的调查让我认为捕获触控板滚动的最佳选择是wheel事件。

 function doScroll(e) { // positive deltas are top and left // down and right are negative // horizontal offset e.deltaX // vertical offset e.deltaY console.log(`x:${e.deltaX} y:${e.deltaY}`); e.preventDefault(); // disable the actual scrolling } window.addEventListener("wheel", doScroll, false); 

我准备了一个小提琴 ,告诉你滚动方向和偏移值,但阻止滚动本身。

wheel事件具有delta属性(至少在Chrome中)对动量敏感,并为您提供当前相对滚动偏移,而不是scroll事件中可用的绝对滚动位置。

您需要做的是更改可以滚动的内容。 如果您的页面足够大,左/右滚动有意义,浏览器将允许它以这种方式滚动。

基本上,如果您只希望它们向某个方向滚动,只能在该方向上制作内容。 如有必要,可以通过将溢出设置为none的容器div设置为所需的特定大小来实现。