在父级上拖动时移动子级的Javascript

唤醒

我想在拖动父元素和元素本身时移动子元素,并且不应该移动父元素。
这是我的演示,
就像在演示中一样,我想在拖动红色框或在其父级(背景)上拖动时移动红色框,但是我无法计算出正确的位置,您能帮我吗?
另一个问题是,为什么我不能offmousemove event当我设置.off('mousemove', mousemove')
非常感谢

托马西托665

我做了一些改变。这有效;)

演示

$(function(){
  var graph = $('.graph')[0];
  var parent = $(graph).parent();

  var lockX = 0;
  var lockY = 0;

  var mousemove = function(e){
        $(graph).offset({
            top: e.pageY + lockY,
            left: e.pageX + lockX
        });
    };

  parent.on('mousedown', function(e) {
        lockY = $(graph).offset().top - e.pageY;
        lockX = $(graph).offset().left - e.pageX;

        $(this).addClass('draggable')
          .on('mousemove', mousemove)
          .on('mouseup', function(){
            $(this).off('mousemove', mousemove)
        })

        event.preventDefault()
    });

    $('.graph').parent().on('mouseup', function(e) {
        $('.draggable')
            .off('mousemove', mousemove)
            .removeClass('draggable');
    });
});

编辑

我做出的唯一实际更改是:

.offset({
    // instead of: e.pageY - $('.draggable').outerHeight() / 2 + dtop
    top: e.pageY + dtop,

    // instead of: e.pageX - $('.draggable').outerWidth() / 2 + dleft
    left: e.pageX + dleft
})

PS:在JS小提琴我的例子中改变dleftdtop分别lockXlockY当然,那是纯粹的语义问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Windows上移动父级舞台时移动子级舞台

鼠标移动事件上的鼠标位置设置在父级而不是子级上

拖放“dragover”事件以在我拖动项目时捕获可拖动的父级而不是子级?里面的简单例子

Kendo TreeView的“移动父级”节点更改“排序顺序”,但不允许将“父级”拖动到“子级”节点下

当使用transform时,div消失:父级上的rotateY,子级上的位置:related

可移动的QGraphicsItem父级而不是子级QGraphicsItem

停止单击父级上的子调用方法 - React/JavaScript

鼠标悬停在父级上时自动设置子级

如何删除更新父级上的子级?

父级和子级div上的CSS溢出

验证父级和子级组件上的propTypes?

Typeorm Lazyload Update父级在子级保存上失败

更改父级上的子级CSS:悬停

单击父级时触发子级元素

单击子级时,如何防止父级的 onClick 关闭?

Angular 2防止在单击子级时单击父级

休眠-更新父级时自动删除子级

单击“子级”元素时,忽略“父级onClick”事件

达到父级的最大高度时可滚动的子级

当父级和子级是功能组件时,反应引用

AngularJS:选择父级li时渲染子级li

父实体上的WebAPI POST子级

在父级内部拖动并锁定

当父级可拖动时,无法在<input>中选择文本

当父级,子级和子级进程共享页面时,写时复制如何工作?

JavaScript将onclick在子级上传递给父级

通过javascript从外部父级添加子级

Javascript/jquery:删除类的父级并保留它的子级

当父级是“表单元”时,“绝对”子级与“亲戚”父级无关-仅Firefox