老师的代码中,显示与隐藏的效果,逻辑没搞清楚,如下:

老师的代码中,显示与隐藏的效果,逻辑没搞清楚,如下:

一:

http://img1.sycdn.imooc.com//climg/5d4ba3090001c8ca07770311.jpg

http://img1.sycdn.imooc.com//climg/5d4ba31a0001978105350430.jpg

鼠标如上移动时:

鼠标离开主菜单区域,会隐藏子菜单区域,

这时子菜单区域已经隐藏,为什么能触发鼠标进入子菜单区域时显示呢?

如果隐藏的时候,移入能显示,那么鼠标从任意一个方向进入子菜单区域不都能使其显示吗?

二:

http://img1.sycdn.imooc.com//climg/5d4ba34d0001979207950319.jpg

鼠标如上移动时:

鼠标只是离开了主菜单项,而没有离开主菜单区域,为什么这时能触发隐藏子菜单区域呢?

我们也没有给主菜单项绑定鼠标离开事件啊。


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1、因为是临界才可以这样的哦。若是把子菜单的left值设置大一些(就是不是紧挨着一级菜单),就不会有这种情况了,在移出之后,直接隐藏了。

2、是的哦。可以参考如下测试下,在我移出子元素,但是还在父元素的时候,也会触发父元素的移出事件哦。这个就是冒泡导致的。

http://img1.sycdn.imooc.com//climg/5d4c01990001b14307700907.jpg

http://img1.sycdn.imooc.com//climg/5d4c01a60001513402450499.jpg

希望能帮助到你,祝学习愉快!

好帮手慕糖 2019-08-08 14:56:39

同学你好,1、这是,主菜单的mouseout,表示鼠标从主菜单移入另一元素时触发。子菜单的mouseover, 表示鼠标从子菜单的外部首次移入子菜单边界之内触发。这里会先触发了移出事件然后触发子菜单的移入事件。

2、这是是因为冒泡的影响,onmouseout和onmouseover事件会冒泡。

当移入菜单中的每一项时,会冒泡到外层父元素menu- content上面 , 所以移出最后一项的时候(如移入到下面的菜单下面的空白处时 ),就会触发menu- content的绑定的事件,把子菜单给隐藏了。所以这样就达到了鼠标离开menu-item时二级菜单隐藏的效果哦。

http://img1.sycdn.imooc.com//climg/5d4bc6df0001582702800457.jpg

因为冒泡同学还没有学习到,所以可能会有一些不理解。不用担心,先简单了解一下,后面课程中会有关于冒泡的课程。可以同学学习了后面的知识后,再来思考这个问题就容易理解了哦。

希望能帮助到你,祝学习愉快!

  • 提问者 午炎子栩 #1
    谢谢回答 1.向右离开主菜单区域进入子菜单区域这一过程,第一步已经触发了隐藏子菜单区域,为什么还能触发移入子菜单区域而显示子菜单区域呢。 已经隐藏了,怎么还能移入呢? 2.冒泡已经学过,我的理解是,当移入主菜单项时会往外冒泡触发移入主菜单区域的事件(如果主菜单区域绑定了这个事件的话),但当移出主菜单项但还没有离开主菜单区域,我没有理解居然也能触发离开主菜单区域的事件,从而把子菜单区域隐藏? 也就是说,一个父元素大方框包裹着一个子元素小方框(“回”字图形),当鼠标离开小方块时,瞬间也能触发离开大方框的事件吗?尽管这时鼠标还在大框内
    2019-08-08 16:11:00
  • 提问者 午炎子栩 #2
    第2个问题我好像明白了,给主菜单区域绑定了移出事件,由于捕获,主菜单项就也有了移出事件。 第1个问题还是没明白,已经隐藏了子菜单区域,为什么还能触发子菜单区域的鼠标移入事件使它显示
    2019-08-08 23:06:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师