jquery.event.drag -每拖动X像素运行脚本

jquery.event.drag - Run script for every X pixels dragged

本文关键字:像素 运行 脚本 拖动 event drag jquery      更新时间:2023-09-26

我在创建的项目中使用jquery.event.drag.js,我正试图找出一种方法来运行我所拖动的每X个像素的脚本。我只用了X轴。这是我现在的一些代码。

$('body').drag(function( ev, dd ){
    var newcell = currentCell;
    var dragOffset = Math.floor(dd.offsetX / 100);
    if (dragOffset >= 1) {
        alert("Dragged 100px");
    }
    newcell += dragOffset;
    $('#info').html(dragOffset + " | " + dd.offsetX);
    updateStack(newcell, magnifyMode);
});

这是有效的,然而,因为这个脚本运行的每一个像素拖动,这运行警报后100像素拖动,但从那时起,它运行的每一个像素之后,我拖动它。我在寻找一种方法,只运行每100px我拖动它。什么好主意吗?

设置一个外部变量跟踪您上次发出警报的时间:

var chunkedOffset = 0;
$('body').drag(function( ev, dd ){
    var newcell = currentCell;
    var dragOffset = dd.offsetX / 100;
    if (dragOffset > chunkedOffset) {
        chunkedOffset = dragOffset;
        alert("Dragged 100px");
    }
    newcell += dragOffset;
    $('#info').html(dragOffset + " | " + dd.offsetX);
    updateStack(newcell, magnifyMode);
});

我不太熟悉drag.js,但是,你可以使用模数除法来确保它每100px。

x % 100 -如果能被100整除,则为0,因此

if(dd.offsetX % 100 == 0)
{
    alert("Dragged 100px");
}