IE6鼠标闪烁的bug
碰到这个bug后,脑子里立马想到了IE6背景闪烁bug,心想很早就听说个这个bug,自己碰到还是第一次,于是按照这个思路走下去,用解决IE6背景闪烁bug的方法一试,果然有效,怀着好奇仔细研究了自己这个所谓的“IE6背景闪烁bug”的代码,却发现并非如此,我又立马意识到我正在接近“一个新的情况”…….
此bug的现象:当鼠标在文字上移动时,在IE6下鼠标形状会在“箭头”和“沙漏(等待)”2中形状中快速变化(闪烁),在其他浏览器下无此现象。
此bug的主要结构代码为:
<ul class="list-box">
<li onmousemove="this.className='cur';" onmouseout="this.className='';">
<strong>鼠标形状在闪烁--之路--前端开发</strong>
</li>
</ul>
此bug的主要样式代码为:
.list-box{width:300px;}
.list-box li{cursor:pointer; vertical-align:top; zoom:1;}
strong{display:block; padding:6px 0;}
.list-box .cur{font-weight:bold;}
.cur strong{color:#ff0000; background:#ccc url(yd-n85.png) no-repeat 230px -180px;}
前面说过,我刚开始以为这个bug是IE6背景闪烁bug,故使用了解决IE6背景闪烁bug的方法解决了我这个bug,恩,纯属意外。查看用这种方法解决我这个bug的demo
后来通过从2个方面入手研究此bug
1.如果换成“onmouseover”事件,会怎样?? 结果是在所在所有浏览器下鼠标都不会闪烁,不管有没有背景图片请求,查看这种情况下的demo
2.如果鼠标指向时没有背景图片请求,会怎样?? 结果是在所在所有浏览器下鼠标都不会闪烁,不管是“onmousemove”事件还是“onmouseover”事件 ,查看这种情况下的demo
综合以上2种分析发现,此bug产生的2个必须同时满足的条件是使用“onmouseover”事件和鼠标指向时有背景图片请求,破坏其中任何一个条件,此bug不会产生,当然这也是解决此bug的2种方法了。
而这就是一个美丽的误会……

最近评论