为什么上一次拖动事件将clientX重置为0?

春季133:

我正在尝试沿线拖动元素。他们应该互相推动,而不是越过或越过。

为避免阴影元素在拖动时浮动,我拖动了一个sub-div,这反过来又影响了外部div的位置。除松开触发clientX = 0!?!

http://codepen.io/primavera133/pen/EKvbYV

HTML:

    <div class="box" >
      <div class="box-inner" draggable="true"></div>
    </div>

    <div class="box2">
    </div

CSS:

    .box {
      width: 50px;
      height: 50px;
      background-color: hotpink;
      position: absolute;
      top: 0;
      left: 0;

    }

    .box-inner {
      width: 100%;
      height: 100%;

    }

    .box2 {
      width: 50px;
      height: 50px;
      background-color: rebeccapurple;
      position: absolute;
      left: 200px;
      top: 0;
    }

JS:

var b = document.querySelector('.box');
var bi = document.querySelector('.box-inner');
var b2 = document.querySelector('.box2');

bi.addEventListener('dragstart', function(){
  console.log("dragstart")
}, false);

bi.addEventListener('drag', function(event){
  bLeft = event.clientX;
  b2Left = b2.offsetLeft;
  b.style.left = bLeft + "px";
  if(b2Left-50 <= bLeft){
    b2.style.left = (bLeft + 50) + "px";
  }

  console.log("drag", event.clientX, event.target.offsetParent.offsetLeft, b2.offsetLeft);

}, false);

bi.addEventListener('dragend', function(){
  console.log("dragend")
}, false);

为什么会这样,我该怎么做才能避免将其重置?

adl:

默认情况下,不能将数据/元素删除到其他元素中。要允许放置,必须在拖移时阻止对元素的默认处理。

document.addEventListener("dragover", function(event) {

  // prevent default to allow drop
  event.preventDefault();

}, false);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在进行循环时,在下一次迭代时始终将其重置为0?

Github:重置为上一次提交

拖动事件仅触发一次

为什么我的jquery .change事件仅在单选按钮上运行一次?

jQuery:为什么click事件只能运行一次?

为什么 DOMNodeRemoved 事件只工作一次?

为什么 JQuery 点击事件只工作一次?

为什么我的while循环(z == 0)仅设置一次为z == 0后会多次运行?

为什么d3.js组元素在第一次拖动时跳动?

为什么当我按Enter时,在我的<button>上触发了一次click事件?

为什么我的计时器不会每三天动态重置一次?

推送到 Github 将 Git 重置为第一次提交

将重复事件更新为Google日历中的一次事件-不起作用

为什么我最后一次将输出编码保留为UTF8时csc.exe崩溃?

RXJS:捕获拖动事件在第一次拖动后不起作用

jQuery 事件触发一次在开发者控制台中编写,为什么?

为什么调整大小事件仅触发一次

为什么服务器发送的事件每3秒启动一次?

为什么事件不会再触发一次呢?

为什么onClick事件只能在html中工作一次?

为什么我的 JS '点击事件' 只运行一次?

如何将 TinyMCE 编辑器事件配置为仅触发一次?

为什么python websockets客户端每50秒重置一次连接?

为什么我的变量在第一次单击 Apollo Client React 时为空?

为什么2倍[0-9]比一次好?

预期在 Mock 上调用一次,但为 0 次

为什么一次不完全安全地在您的数据上写入0或随机二进制?

为什么我的vixie cron条目每隔一天运行一次,而实际上每4次连续几天运行一次?

为什么侦听器总是显示上一次迭代的编号?