解决IE下CSS背景图片闪烁的Bug
2013-07-01 16:15
423 查看
要给一些按钮或是img设置背景,而为了达到数据与表现样式分离的效果,通常背景样式都是在CSS里设定的,但是这个行为在IE会有一个Bug,那就是因为IE默认情况下不缓存背景图片,所以当鼠标在有CSS背景的按钮或是图片上移动时,图片会闪烁甚至鼠标会出现忙的状态,而在FireFox下没有这个问题,为了解决这个问题,有两种解决办法,其一是在CSS中加入如下样式,但注意的是,IE7则没这个问题了.
(其实,即IE的cache设置为Every visit to the page,而不是默认的Automatically。基本上,只有开发者才会把cache设置为每次访问检查更新,所以这个bug其实不会影响真正的用户(根据在winxpsp2的ie6下测试,虽然可能仍然调用了一次网络存取的api,但是并没有发生实际的请求,症状就是鼠标有极短时间的抖动,但是图像不会闪烁)
在页面中的任意位置加入如下代码,即可达到理想中的效果:
<script>
document.execCommand(”BackgroundImageCache”, false, true);
</script>
(function(){
/**//*Use Object Detection to detect IE6*/
var m = document.uniqueID /**//*IE*/
&& document.compatMode /**//*>=IE6*/
&& !window.XMLHttpRequest /**//*<=IE6*/
&& document.execCommand;
try{
if(!!m){
m("BackgroundImageCache", false, true) /**//* = IE6 only */
}
}catch(oh){};
})();
(其实,即IE的cache设置为Every visit to the page,而不是默认的Automatically。基本上,只有开发者才会把cache设置为每次访问检查更新,所以这个bug其实不会影响真正的用户(根据在winxpsp2的ie6下测试,虽然可能仍然调用了一次网络存取的api,但是并没有发生实际的请求,症状就是鼠标有极短时间的抖动,但是图像不会闪烁)
在页面中的任意位置加入如下代码,即可达到理想中的效果:
<script>
document.execCommand(”BackgroundImageCache”, false, true);
</script>
(function(){
/**//*Use Object Detection to detect IE6*/
var m = document.uniqueID /**//*IE*/
&& document.compatMode /**//*>=IE6*/
&& !window.XMLHttpRequest /**//*<=IE6*/
&& document.execCommand;
try{
if(!!m){
m("BackgroundImageCache", false, true) /**//* = IE6 only */
}
}catch(oh){};
})();
相关文章推荐
- [转]解决IE下CSS背景图片闪烁的Bug
- 解决IE下CSS背景图片闪烁的Bug
- 解决IE下CSS背景图片闪烁的Bug
- 解决IE下CSS背景图片闪烁的Bug
- 解决IE下CSS背景图片闪烁的Bug
- 解决IE6下CSS背景图片闪烁的Bug
- 超强的IE背景图片闪烁(抖动)的解决办法
- 解决IE6下的CSS Hover背景图片闪烁问题
- 链接伪类(:hover)CSS背景图片有闪动BUG的解决方法
- 解决CSS背景图片闪动和重复加载的IE6BUG
- IE6下CSS背景图片有闪动BUG解决 图片缓存
- 超强的IE背景图片闪烁(抖动)的解决办法
- CSS解决IE6下PNG图片背景不透明的问题
- 纯css完美地解决图片在div内垂直水平居中,兼容IE7.0、IE6.0、IE5.5、IE5.0、FF、
- 解决IE下图片作为背景时,有鼠标操作时的抖动问题
- 解决PNG图片在IE6中背景不透明的CSS与JS代码
- 使用滤镜解决IE6下PNG图片背景不透明的BUG
- css中设定的背景图片无法显示的解决方法
- css中设定的背景图片无法显示的解决方法 .
- ie下div撑不开或背景图片不显示的解决方法