首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery鼠标滚轮在触控板上水平滚动。避免deltaX和deltaY之间的冲突

jquery鼠标滚轮在触控板上水平滚动。避免deltaX和deltaY之间的冲突
EN

Stack Overflow用户
提问于 2013-08-16 22:20:37
回答 1查看 1.6K关注 0票数 2

我使用jquery鼠标滚轮插件创建一个水平滚动的网站。垂直鼠标滚轮移动转换为水平滚动。使用触控板时,会出现冲突,因为有时不清楚是向右滚动还是向左滚动。(例如,如果您在触控板上右上移动)

我怎样才能像这个页面上那样顺利地工作:http://www.yangrutherford.com/en/work

代码语言:javascript
复制
$('#scroll').on('mousewheel', function(event, delta, deltaX, deltaY) {
    this.scrollLeft -= (delta * 1.5);
    event.preventDefault();
});
EN

回答 1

Stack Overflow用户

发布于 2013-11-21 10:17:16

我没有一个只有垂直滚轮的鼠标,但我会假设增量分量较大的那个会显示用户的意图。这对我来说很有效,除非移动非常慢,或者用户在任何方向上以45度的角度移动:

代码语言:javascript
复制
$('#scroll').on('mousewheel',function(event, delta, deltaX, deltaY) {
    event.preventDefault();

    //use whichever component (deltaX or deltaY) that has the largest absolute value
    // deltaX needs negated to have natural scroll motion
    var singleDelta = (Math.abs(deltaX)>Math.abs(deltaY)) ? (-1 * deltaX) : deltaY;

    this.scrollLeft-= (singleDelta * 1.5);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18275534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档