当前位置: 首页 > news >正文

长沙企业网站建设优度太白 网站建设

长沙企业网站建设优度,太白 网站建设,平阴网络营销是什么,优化关键词排名优化公司这是2个组合事件 dom对象分源对象和目标对象 绑定的事件也是分别区分源对象和目标对象 事件绑定 事件顺序 被拖拽元素,事件触发顺序是 dragstart->drag->dragend; 对于目标元素,事件触发的顺序是 dragenter->dragover->drop/…

这是2个组合事件

dom对象分源对象和目标对象

绑定的事件也是分别区分源对象和目标对象

 事件绑定

事件顺序

被拖拽元素,事件触发顺序是 dragstart->drag->dragend

对于目标元素,事件触发的顺序是 dragenter->dragover->drop/dropleave

其中dragdragover会分别在源元素和目标元素反复触发。整个流程一定是dragstart第一个触发,dragend最后一个触发。

这里还有一个注意的点,如果某个元素同时设置了dragoverdrop的监听,那么必须阻止dragover的默认行为,否则drop将不会被触发。

问题

drop事件里面的e.offsetY会收到目标对象内部的子节点影响(如果在目标节点的子节点上是否标签),拿到是相对子节点内部的x,y距离。

修复:

  1. dragstart回调中给所有目标对象的子简单添加样式pointerEvents:none;让他们不会接受任何事件
  2. dragend的时候,恢复所有对象目标子节点的样式为:pointerEvents:auto;

 demo:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}.wrap {height: 400px;overflow: auto;background-color: beige;}.inner {height: 1900px;position: relative;}.draggable {bottom: 10px;right: 10px;width: 100px;height: 100px;background-color: rebeccapurple;position: fixed;}.inner_box {top: 1800px;right: 10px;width: 100px;height: 100px;background-color: rebeccapurple;position: absolute;}</style>
</head><body><div class="wrap"><div class="inner"><div class="inner_box"></div></div></div><div draggable="true" class="draggable"></div><script>const inner = document.querySelector(".inner");const source = document.querySelector(".draggable")const inner_box=document.querySelector(".inner_box");inner.addEventListener("dragover", (e) => {e.preventDefault();console.log("e.offsetY over", e.offsetY, e.target)});inner.dragenter = function (e) {console.log("e enter", e.offsetY)}//源目标开始拖拽时候source.addEventListener("dragstart", (e) => {console.log("e start", e.offsetY)//inner_box.style.pointerEvents="none";});inner.ondrop = function (e) {console.log("e", e.offsetY)}</script>
</body></html>

参考

看完就懂的前端拖拽那些事 - 掘金

HTML 拖放(Drag and Drop)入坑实战总结篇 - 掘金

两个事件直接传递数据

DataTransfer 

参考:https://www.cnblogs.com/guo-siqi/p/16358323.html

http://www.yayakq.cn/news/895057/

相关文章:

  • 免费免费建网站网站设计代码
  • 网站地图无法生成一般的网站都是用什么系统做的
  • 网站共用数据库如何建网站费用多少
  • 深圳本地做网站wordpress禁用xmlrpc
  • 做网站开发哪里好重庆建设工程施工安全管理网官网
  • python如何做网站北方明珠网站建设
  • 设计网络网站建设做网站优化的协议书
  • 同一虚拟主机 2个网站福建省百川建设发展有限公司网站
  • Windows怎么建设网站南康网站建设
  • 公司加强网站建设网站建设整改情况汇报
  • 本地的营销网站建设普通电脑怎么做网站服务器吗
  • 杭州网站seo外包设置网站404
  • 网站空间 哪个公司好广东营销型网站
  • 山东富国建设投资有限公司网站开发者模式在哪里打开
  • 网站运营师二手房房产网站建设
  • 江苏建设网站酒店装修合同范本合肥网站设计公
  • 自己可以做开奖网站吗关注love石家庄公众号微信
  • 网站用户体验存在问题出入长春最新通知今天
  • 灯具公司网站模板宁夏建设工程质量监督站网站
  • 网站建设系统有哪些旅游门户网站模板下载
  • 二手车 网站开发软文营销推广
  • 西宁高端网站制作可以在几个 网站备案
  • 高端品牌网站建设注意事项南宁的公司有哪些
  • id97网站怎么做的宿州网站开发
  • 天助网的网站浙江省住房和城乡建设局网站
  • 南通网站制作价格网站建设的步骤图片过程
  • 台州网站建设优化免费空间 网站
  • 网上做论文的网站有哪些php做网站速成
  • 如何找专业的网站建设公司四川省住房和城乡建设厅证书查询
  • 上海哪些做网站大连网站制作赞ls15227