筋斗云案例中为什么要给ul加定位?不是谁移动就给谁加定位吗?移动的不是筋斗云这个元素吗?

问题遇到的现象和发生背景

筋斗云案例中,鼠标经过li时功能正常,但是添加鼠标离开事件后,动画变的不正常。

问题相关代码,请勿粘贴截图
ul{
    position: absolute;
}
运行结果及报错内容
我的解答思路和尝试过的方法

通过给ul添加定位解决了这个问题,但是不理解的是为什么要给ul添加定位,是筋斗云移动,那么筋斗云添加定位是应该的,ul不需要移动为什么也要添加定位。

我想要达到的结果

因为mouseover事件中要用this.offsetLeft获取当前点击的li的left值

offsetLeft获取的是当前元素相对于向上找第一个设置了 position: relative或 absolute; 的父辈元素左上角的left值
当没有给ul添加position: relative或 absolute定位时,offsetLeft获取的是当前元素相对于.nav元素左上角的left值
给ul添加position: relative或 absolute定位 offsetLeft获取的才是当前元素相对于ul元素左上角的left值

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

关键我们不知道 筋斗云案例是啥呀

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632