javascript - 如何根据 Hammer.js pan 设置 translateX 的样式?

标签 javascript css hammer.js gestures

我想在用户使用 Hammer.js 平移元素时translateX() 元素。当用户向左拖动内容时,我想向左翻译内容。右边也一样。

当前代码:

var manager = new Hammer.Manager(elem);

var panner = new Hammer.Pan({ direction: Hammer.DIRECTION_HORIZONTAL, threshold: 0 });

manager.add(panner);

manager.on("panleft", function(e) {
    elem.style.transform = "translateX(" + (e.distance * -1) + "px)";
});

manager.on("panright", function(e) {
    elem.style.transform = "translateX(" + e.distance + "px)";
});

它可以工作,除非用户向左平移然后向右返回,它会出现故障并变为负数。我怎样才能让它发挥作用?

最佳答案

我通过绑定(bind)到 panmove 事件并使用 e.deltaX 属性解决了这个问题:

manager.on("panmove", function(e) {
   elem.style.transform = "translateX(" + e.deltaX + "px)";
});

关于javascript - 如何根据 Hammer.js pan 设置 translateX 的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41608834/

相关文章:

css - 为什么我的 CSS 网格不能填满整个屏幕?

php - 使元素内的文本居中

javascript - 用于 Angular 2+ 的 Hammer.js

javascript - 使用 Hammer.js 的事件委托(delegate)

javascript - Webpack - 排除 node_modules 也保持独立的浏览器和服务器管理

javascript - 用户输入时换行

javascript - 为什么游戏代码继续运行而不是被垃圾收集?

Javascript 把第一行放在 thead

css - IE中的水平下拉菜单

javascript - Hammer.js 无法删除事件监听器