程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

仅使用手柄拖动整个父 div

发布于2021-10-23 03:25     阅读(510)     评论(0)     点赞(3)     收藏(2)


我打算拖动整个父 div,只将手柄连接到其左侧。见下面的代码片段,30x30 图像是我现在的拖动手柄:

var DRAG_CLASS = "beingdragged";

div.ondragstart = function() {
  this.classList.add(DRAG_CLASS);
};

div.ondragend = function() {
  this.classList.remove(DRAG_CLASS);
};
img {
  cursor: move;
  float: left;
}

div {
  border: 1px solid red;
  background: lightblue;
  width: 100%;
  transform: 0.5s ease;
}

div.beingdragged {
  width: 95%;
}
<!DOCTYPE html>
<html>
<body>
  <div id="div" draggable="true"><img src="https://placehold.it/30x30">
    <p>this is some text</p>
  </div>
</body>

</html>

当用户移动光标时,我希望整个 div 与光标一起移动,正如人们在拖动操作中所期望的那样。但是,正如您在输出中所观察到的,即使我已设置draggable="true"为整个父 div ,也只有图像被拖动即使光标四处移动,整个父 div 仍会保持原样。

我已经向DRAG_CLASSdiv添加了一个类,因此您可以看到,dragstartdragend事件正确触发。

那么问题是什么呢?


解决方案


确保 div 是可拖动的,正如您在将其拖动到图像以外的其他地方时所看到的那样。

然而,默认情况下,图像也是可独立拖动的。但是,使用draggable="false"或 适当的 css 规则很容易禁用

var DRAG_CLASS = "beingdragged";

div.ondragstart = function() {
  this.classList.add(DRAG_CLASS);
};

div.ondragend = function() {
  this.classList.remove(DRAG_CLASS);
};
img {
  cursor: move;
  float: left;
}

div {
  border: 1px solid red;
  background: lightblue;
  width: 100%;
  transform: 0.5s ease;
}

div.beingdragged {
  width: 95%;
}
<!DOCTYPE html>
<html>
<body>
  <div id="div" draggable="true"><img draggable="false" src="https://placehold.it/30x30">
    <p>this is some text</p>
  </div>
</body>

</html>




所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/208443/764274e37be57d3fcc23/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)