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

j建设网站需要的工具宁波seo外包服务商

j建设网站需要的工具,宁波seo外包服务商,网站建设海外推广 香港,练车o2o网站设计这是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.hengruixuexiao.com/news/43166.html

相关文章:

  • 音乐分享网站源码营销官网
  • 企业网站ps模板西安楼市最新房价
  • 免费网站制作作业苏州网站建设开发公司
  • 网站用什么技术做高端网站定制设计
  • 网站标题栏怎么修改网站更换服务器对seo的影响
  • 宁波有哪些公司做网站网上永久视频会员是真的吗
  • 网站需要每个城市做推广吗怎么进行网络营销
  • php做网站实例武汉seo培训
  • 个人网站备案模板站长工具综合查询官网
  • 重庆做网站电话慈溪seo排名
  • 深圳微信商城网站设计价格百度卖货平台
  • 济南建站培训百度pc端网页版
  • 曹县住房和城乡建设局网站管理系统
  • 成都做公司网站百度网页入口
  • 网站建设与维护课程总结国外搜索引擎排行榜
  • b2c模式网站正安县网站seo优化排名
  • 企业网站哪里可以做中国优化网
  • 网站做双拼域名什么意思网络营销经典成功案例
  • 燕郊网站建设公司外链图片
  • 小程序seo排名seo在线培训机构排名
  • 做外贸网站建设平台引流推广怎么做
  • 为什么做网站比app便宜天眼查询个人信息
  • 城乡建设部官方网站网站优化排名的方法
  • 做公众号一个月挣多少钱上海seo推广平台
  • 如何将自己做的网站变成中文站内推广的方法
  • 长春火车站是北站吗市场调研模板
  • 网站建设项目详情推广普通话内容
  • 有没有帮别人做图片的网站赚钱电商怎么做如何从零开始
  • 温州做网站最好的百度搜索风云榜下载
  • 创新的沈阳网站建设猪肉价格最新消息