所有分类
  • 所有分类
  • 后端开发
使用鼠标移出事件的注意事项及实战案例分析

使用鼠标移出事件的注意事项及实战案例分析

这次给大家带来鼠标移出事件的案例以及详解,使用鼠标移出事件的注意事项有哪些,下面就是实战案例,一起来看一下。思路:给p注册mouseleave事件,该事件和mouseout区别就在于,当鼠标移动到本元素内的子元素的时候不会触发mousele

啥?鼠标移出去也有讲究?可能你觉得这事儿太小了,可在网页设计里头,它可是大有用处!别急,咱们今天就唠唠这个看似简单却又不简单的话题。那就让我给你说说前几天我做的一个课堂试验,也许这样你就能更明白怎么用好这个功能~

一、案例背景:好友列表的小插曲

Insert title here
#friends{
        border:1px solid #ff0000;
        width:200px;
        height:400px;
        position:absolute;
        right:0px;
        top:20px;
        background: #abcdef;
        display:none
    }
    #line{
        width:1px;
        height:800px;
        float:right;
    }
   var inter;
    jQuery(function(){
        /*鼠标移动到右边界线,好友列表框显示*/         ("#line").mouseover(function(){             $("#friends").show(1000);         });        /*鼠标离开好友框,隐藏*/
("#friends").bind('mouseout',function(event){
              $(this).hide(1000);  
         });  
    });

   

会飞的鱼使用鼠标移出事件的注意事项及实战案例分析

会飞的鱼使用鼠标移出事件的注意事项及实战案例分析

会飞的鱼使用鼠标移出事件的注意事项及实战案例分析

会飞的鱼使用鼠标移出事件的注意事项及实战案例分析

我最近上课想搞个QQ好友列表的模拟效果,开始都挺顺利,但后面发现,我光标放到好友名字上面时,好友列表就不见了,咋会这样呢?

朋友列表框里头儿那些小东西有毛病。它们一个个对应着单个的朋友,然后我一点它们,就把爸爸(指父元素)的鼠标离开事件给搞出来了。更糟糕的是,这些小东西里面还有别的东西,像span啊image什么的,结果就是事件一直在发生,最后弄得整个列表都看不清了。

使用鼠标移出事件的注意事项及实战案例分析

二、深入解析:事件触发的机制

搞定这个问题得先明白鼠标移出事件咋回事。当鼠标经过目标元素(主目标)时会触发mouseover事件,这时候被忽略的元素就是相关元素。换句话说,如果你鼠标从主目标上挪开,就会触发mouseout事件,这时候主目标就是相关元素。那你知道吗?IE浏览器里有两个特别的属性,就是fromElement和toElement。它们会在不同的事件触发时记录相关元素!

三、解决方案:选择合适的事件类型

对于那些难搞的子元素结构,光用mouseover和mouseout可不行。这时候,咱们试试看mouseenter和mouseleave。它们俩不一样!比如,当鼠标真真实实点进了被选中的元素里,只有这时mouseenter才会响应;如果鼠标从这个元素上移开,那就只有mouseleave会有反应,跟子元素没关系。

四、跨浏览器兼容性:jQuery的救场

/鼠标离开好友框,隐藏/ (“#friends”).bind(‘mouseout’,function(event){               var tar=event.target || event.srcElement;//鼠标离开的元素               var totar=event.relatedTarget || event.toElement;//鼠标指向的元素               //如果鼠标指向了自己的子元素,则不触发mouseout事件              if(
(this).find(totar).size()>0||this==totar){ 
                return; 
            } 
            //否则,如果不是指向子元素,就表示鼠标已经离开了p 
            else  { 
                console.log(tar.id+’–’+totar.id); 
                $(this).hide(1000);  
            } 
         });

虽然IE浏览器支持鼠标移动进入和离开事件,但是像Chrome和Safari这样的浏览器却不太给力。不过别怕,用上jQuery这个强大工具去注册这两个事件,就能解决跨浏览器兼容性的问题!因为jQuery会把这些事件包装好,让它们在各种浏览器上都能正常运行。

五、实战技巧:根据场景选择事件

其实,用哪种事件还是得看具体情况。比如你选的那个东西里头啥都没的话,用鼠标滑过去滑出来就行了。但是万一有子元素,特别是嵌套好几层的那种,那就别动鼠标进入或离开这种方法比较保险,能避免事件乱跑。

六、注意事项:避免常见的陷阱

用鼠标移开这个事情,那可不简单!有几个陷阱得小心。比如,事件会像气泡一样冒出来,乱点一通,特别是在一大堆DOM结构里面。而且,每个浏览器对这事的理解不一样,所以做这个功能时就得多试几次,看看到底哪个浏览器支持得最好。

/鼠标离开好友框,隐藏/ (“#friends”).bind(‘mouseleave’,function(event){
(this).hide(1000);  
            } 
         );

七、总结:鼠标移出事件的深层应用

看了今天的分享,相信你已经对鼠标移出网页时发生的事情有更深了解!不管是简单地展示隐藏内容,还是玩转各种交互设计,只要懂得怎么用好这些事件,就能让你做出来的网页操作起来顺滑又好用。

最后我想问下你,你做网页设计时,怎么处理鼠标离开页面的事情?赶紧来评论区说说你的心得,咱们一起学,一起进步!别忘了给我点个赞,分享出去!

原文链接:https://www.icz.com/technicalinformation/web/2024/07/19279.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?