六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 127|回复: 0

解决IE下CSS背景图片闪烁的Bug

[复制链接]

升级  55.4%

243

主题

243

主题

243

主题

进士

Rank: 4

积分
777
 楼主| 发表于 2013-2-7 20:09:25 | 显示全部楼层 |阅读模式
 
很多时候我们要给一些按钮或是img设置背景,而为了达到数据与表现样式分离的效果,通常背景样式都是在CSS里设定的,但是这个行为在IE会有一个Bug,那就是因为IE默认情况下不缓存背景图片,所以当鼠标在有CSS背景的按钮或是图片上移动时,图片会闪烁甚至鼠标会出现忙的状态,而在FireFox下没有这个问题,为了解决这个问题,有两种解决办法,其一是在CSS中加入如下样式:
html {
filter: expression(document.execCommand(”BackgroundImageCache”, false, true));
}
但这个可能会使整个页面的加载变得很慢,所以推荐使用JS来修正这个Bug,在页面中的任意位置加入如下代码,即可达到理想中的效果:
<script>
document.execCommand(”BackgroundImageCache”, false, true);
</script>


<div style="border-right: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee; border: 1px solid #cccccc;">(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"falsetrue/**//* = IE6 only */ 
        }

        
    }
catch(oh){};
}
)();
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表