我已经在许多不同的设备上使用了标准的触摸事件来产生良好的效果。如果它只是一个简单的解决方案,而不是一个重量级的插件,只需使用touchstart
touchmove
和touchend
事件顶部计算移动并修改滚动顶部。
我找不到跨设备的标准 CSS 方式,但也许 webkit 有一些专有的东西。
PS这是最近3个月的。
[更新]
您可以像使用其他任何事件一样使用这些事件,
var startX = 0;
var startY = 0;
var ele = document.getElementById('myScrollableDiv');
ele.addEventListener('touchstart', function(ev){
startX = ev.screenX;
startY = ev.screenY;
});
ele.document.getElementById('myScrollableDiv').addEventListener('touchmove', function(ev){
movementX = startX - ev.screenX;
movementY = startY - ev.screenY;
ele.style.scrollLeft = ele.style.scrollLeft + movementX;
ele.style.scrollTop = ele.style.scrollTop + movementY;
ev.preventDefault();
});
这完全来自内存,所以它需要一些我现在不能做的测试,而且我现在也没有我使用的代码(尽管那是在 jQuery 中)。这种方法最终效果很好,只是需要解决一些问题。希望这足以让您开始工作。