javascript - 使用 X 和 Y 坐标定位元素

标签 javascript jquery html css interact.js

我是 Javascript 的新手,我正在使用 InteractJS 进行简单的拖放,将较小的图像拖到较大的图像上。在每个拖动移动事件中,他们使用以下函数:

 function dragMoveListener (event) {
    var target = event.target,
        // keep the dragged position in the data-x/data-y attributes
        x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx,
        y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;

    // translate the element
    target.style.webkitTransform =
    target.style.transform =
      'translate(' + x + 'px, ' + y + 'px)';

    // update the posiion attributes
    target.setAttribute('data-x', x);
    target.setAttribute('data-y', y);

我假设设置的 data-x 和 data-y 属性是刚刚删除的元素的位置。但是,我希望能够在那个位置重绘一个元素。我尝试了以下方法:

var parent = event.currentTarget;
               var xCoord = parent.getAttribute('data-x');
               var yCoord = parent.getAttribute('data-y');
                $("#testDiv").css({top: parseInt(xCoord + event.dx, 10), left: parseInt(yCoord + event.dy, 10), position: 'absolute'});

但是这是设置padding,并没有放在正确的位置。如何使用 data-x 和 data-y 定位 div/图像?

最佳答案

移除父级的填充 或按照此处所述测量填充:jQuery How to Get Element's Margin and Padding? 并从#testdiv 的边距中减去它

关于javascript - 使用 X 和 Y 坐标定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37845793/

相关文章:

javascript - 在循环外传递 ng-repeat 当前对象

javascript - 在特定元素的某个点将垂直滚动更改为水平滚动

javascript - 获取输入检查值,就像它是一个表单一样

javascript - html/css + MVC 的命名约定?

javascript - 初始化本地存储的正确方法?

javascript - jQuery : Access data-link attribute

带有 While 循环的 Javascript 贷款计算器

javascript - 为什么我的 ExtJS 表单没有提交?

javascript - 购物 list 应用程序 : using checkboxes to cross off items

javascript - 如何在 JS 事件监听器中获取正确的按键语言和大小写?