leo*_*ora 6 jquery scroll jquery-ui draggable jquery-ui-draggable
我正在使用jquery ui draggable,我意识到当我向下拖动时(相对于左/右),我希望滚动灵敏度更小.是否可以为垂直拖动和水平拖动设置不同的设置?
这是我目前的代码
$(".myDraggable").draggable(
{
stack: ".myDraggable",
scroll: true,
scrollSensitivity: 250,
scrollSpeed: 40,
revert: function (event, ui) {
$(this).data("uiDraggable").originalPosition = {
top: 0,
left: 0
};
return !event;
}
}
);
Run Code Online (Sandbox Code Playgroud)
工作示例: http: //jsfiddle.net/22bpbsrw/3/
我认为检测视口中何时发生滚动事件确实有效。然后您可以设置滚动速度和灵敏度。
var lastScrollTop = 0,
lastScrollLeft = 0,
delta = 5;
$('#viewPort').scroll(function (event) {
var st = $(this).scrollTop();
var sl = $(this).scrollLeft();
if (Math.abs(lastScrollTop - st) > delta) {
$("#draggable").draggable("option", "scrollSensitivity", 5);
$("#draggable").draggable("option", "scrollSpeed", 10);
(st > lastScrollTop) ? console.log('scroll down') : console.log('scroll up');
lastScrollTop = st;
}
if (Math.abs(lastScrollLeft - sl) > delta) {
$("#draggable").draggable("option", "scrollSensitivity", 100);
$("#draggable").draggable("option", "scrollSpeed", 40);
sl > lastScrollLeft ? console.log('scroll right') : console.log('scroll left');
lastScrollLeft = sl;
}
});
Run Code Online (Sandbox Code Playgroud)
离开只是为了帮助别人。
您不能明确scrollSensitivity为每个方向设置不同的值。也许您可以提交该增强功能的票证?
您也许可以通过拖动功能更改它(基于此答案)。请参阅此处的工作示例:http://codepen.io/anon/pen/mbups? editors=001
drag: function(e) {
console.log($("#drag1").draggable( "option", "scrollSensitivity"));
if(prevX == -1) { prevX = e.pageX; }
// dragged left or right
if(prevX > e.pageX || prevX < e.pageX) { // dragged right
$("#drag1").draggable( "option", "scrollSensitivity", 100 );
}
prevX = e.pageX;
if(prevY == -1) { prevY = e.pageY; }
// dragged up or down
if(prevY > e.pageY || prevY < e.pageX) { // dragged down
$("#drag1").draggable( "option", "scrollSensitivity", 1 );
}
prevY = e.pageY;
}
Run Code Online (Sandbox Code Playgroud)
scrollSensitivity您可以根据拖动元素的方向来设置。
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |