防止元素在hammerjs.github.io示例页面(hammer js ver2.0.1)中重置为默认位置
Prevent element reset to default position in hammerjs.github.io sample page (hammer js ver2.0.1 )
从hammerjs.github.io网站上可以看到,无论何时你拖动、滑动、捏捏或旋转白色方块,它都会重置回默认位置。我已经试过了,但没能阻止这种行为,我不想让它重置回它的位置。我选择这个例子是因为它是唯一一个适合我在windows phone 8上运行的地图项目的例子。
我的做法是取消了onSwipe函数中的resetElementEnd(),我也取消了
mc.on("panstart rotatestart pinchstart", resetElementStart);
mc.on("panend rotateend pinchend pancancel rotatecancel pinchcancel", resetElementEnd);
但是当我平移它时,在它可以平移之前,它会重置回默认位置,这似乎是许多问题的根源。我知道这与startX和startY有关,但我真的不知道它们是干什么用的。
var startX = Math.round((el.parentNode.offsetWidth - el.offsetWidth) / 2);
var startY = Math.round((el.parentNode.offsetHeight - el.offsetHeight) / 2);
...
function onPan(ev) {
transform.translate = {
x: startX + ev.deltaX,
y: startY + ev.deltaY
};
requestElementUpdate();
}
这里是链接包括html, css和js文件,基本上是hammerjs.github.io样本的简化版本,index.js文件是原始文件,modifiedIndex.js是相同的文件,但我取消了上面提到的一些行。https://www.mediafire.com/?y7wvady7bhmyrs9
这个库很棒,我希望我能在我的项目中实现它。谢谢你的帮助/建议。
你必须记住光标的最后位置。
在resetElementEnd()上,您将保存翻译的X和Y
function resetElementEnd() {
startX = transform.translate.x;
startY = transform.translate.y;
el.className = 'animate';
requestElementUpdate();
}
确保你已经完全创建了transform对象:在第88行,替换
var transform;
到
var transform = {
translate: { x: startX, y: startY },
scale: 1,
rotate: 0
};
希望能有所帮助
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何更改<svg>标记为<img>用js标记
- 如何使用 node.js 比较两个 json 数组
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- Selectize.js:如何对整数值的选项进行排序
- 防止元素在hammerjs.github.io示例页面(hammer js ver2.0.1)中重置为默认位置