JS事件之鼠标事件

很多人都知道鼠标事件,W3C规定的鼠标事件有5个,它们分别是mousedown,mousemove,mouseup,mouseover,mouseleave。前面三个经常用到一起做拖拽效果,后面两个经常用在一起做类似于:hover的效果。IE除了这5个基本的事件之外还增加了mouseleave和mouseout,这个我们后面再说。
最近在做一个网站的轮播图的时候,出现了一个bug,我原本想做成的效果是鼠标放在图片上,停止轮播,鼠标离开图片后,轮播开始。然而问题就出现了,就是当我把鼠标放在图片上,轮播是停止,但是当我把鼠标由图片移动到左右箭头的时候,轮播又继续开始,这完全违背了我的初衷啊!

这里写图片描述

开始思考问题出现在哪里?原因是我采用绝对布局把左右箭头放在ul里面,这时候你使用从图片移动到箭头,系统认为会触发mouseout方法;当你再次从箭头移动到图片,系统会再次触发mouseover方法。
上网查阅了一些相关的资料发现了一些有用的东西如下:

  • 事件对象:Event或者Window.Event(不要跟我说你连这个都不知道)
  • Event相关属性(只针对mouseover和mouseout):W3C使用relatedTarget,IE使用fromElement与toElement。
  • 判断一个元素是否包含另外一个元素:W3C使用ele.compareDocumentPosition(Node),IE使用ele.contains(Node)。

    看到这里我大概知道我的问题出现在哪里了。这里以mouseover为例,当我触发了ul(轮播图最外层标签,它上面绑定了)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值