使用jQuery UI's可拖动来检测项目何时被向左或向右拖动
detect when item is being dragged left or right with jQuery UI's draggable?
我使用JQuery UI使元素可拖动,在代码中,可以指定开始,拖动和结束的操作。
但是我怎么能在左拖动时运行一个函数而在右拖动时运行另一个函数呢?
我已经将可拖动轴限制为x轴。所以元素只能向左或向右移动
检查这个演示: http://jsfiddle.net/3NtS9/
可以通过检查每个原子拖动操作的前一个事件坐标来实现。
var prevX = -1;
$('div').draggable({
drag: function(e) {
//console.log(e.pageX);
if(prevX == -1) {
prevX = e.pageX;
return false;
}
// dragged left
if(prevX > e.pageX) {
console.log('dragged left');
}
else if(prevX < e.pageX) { // dragged right
console.log('dragged right');
}
prevX = e.pageX;
}
});
有一个更简单的方法:
$( "#draggable" ).draggable({
drag: function( event, ui ) {
$(this).text(ui.originalPosition.left > ui.position.left ? 'left' : 'right');
}
});
演示:http://jsfiddle.net/GNHTW/
我建议您处理start
和stop
事件,并确定停止事件中的位置增量,以获得它是向左移动还是向右移动:
http://jqueryui.com/draggable/事件
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 删除对HTML元素的拖动
- jQuery UI可排序-多连接列表拖动
- 禁用SVG拖动
- 旋转后拖动对象
- JQuery UI可拖动潜水与滚动棒到鼠标
- jsPlumb-拖动克隆而不进行复制
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- 如何使元素在可拖动元素内可单击
- 如何在使用Kinetic拖动同一对象后,在旋转动画中保持先前的偏移
- 在d3中拖动一条线
- 使元素在iframe中可拖动
- 通过拖动可以更改三维模型对象在Three.js场景中的位置
- 如何使所有绘制的(矩形、圆形、直线、多边形)都可拖动?纯JS
- 拖动开始时更改可拖动元素的大小
- 如何正确拖动jqgrid编辑表单
- 交互.js拖动的项目移动到顶部
- 拖动&删除Fullcalendar.io资源-更新视图
- 检测另一个视图何时被触摸-在react native中使用PanResponder拖动
- 使用jQuery UI's可拖动来检测项目何时被向左或向右拖动