2020/4/26 拖拽与事件委托

拖拽(拖拽三剑客)

  1. mousedown(鼠标按下)
    记录鼠标按下位置和被拖拽物体的相对距离
    var offsetX = e.clientX - node.offsetLeft
    var offsetY = e.clientY - node.offsetTop

  2. mousemove(鼠标按下移动)
    一致保持相对距离
    node.style.left = e.clientX - offsetX + “px”
    node.style.top = e.clientX - offsetX + “px”

  3. mouseup(取消拖拽)




事件委托
A委托B去买饭
A发布任务,委托方(收益方)
B执行任务,代理方

事件委托实现步骤

  1. 找到当前节点的父节点或者祖先节点
  2. 将事件添加到你找到的这个父节点或祖先节点上
  3. 找到触发对象,判断触发对象是否是想要的触发对象,进行后续操作
<script type="text/javascript">
   window.onload = function(){
    var oul = document.getElementById("ul1")
    //找到父节点
    oul.onclick = function(ev){
    // 将事件添加到父节点上
     var e = ev || window.event
     //找到触发对象,判断触发对象是否是想要的触发对象,进行后续操作
     var target = e.target || window.event.srcElement;
     if(target.nodeName.toLowerCase() == "li"){
      target.style.backgroundColor="red";
     }
    }
 </script>

<body>
  <ul id="ul1">
   <li>11111</li>
   <li>22222</li>
   <li>33333</li>
   <li>44444</li>
   <li>55555</li>
  </ul>
 </body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值