问题遇到的现象和发生背景
筋斗云案例中,鼠标经过li时功能正常,但是添加鼠标离开事件后,动画变的不正常。
问题相关代码,请勿粘贴截图
ul{
position: absolute;
}
运行结果及报错内容
我的解答思路和尝试过的方法
通过给ul添加定位解决了这个问题,但是不理解的是为什么要给ul添加定位,是筋斗云移动,那么筋斗云添加定位是应该的,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值
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!