posts - 127, comments - 26, trackbacks - 41, articles - 2
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

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

Posted on 2008-05-17 09:43 李海 阅读(104) 评论(1)  编辑 收藏 所属分类: DIV+CSS

很多时候我们要给一些按钮或是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>

 


(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){};
})();

Feedback

#1楼    回复  引用  查看    

2008-09-25 11:12 by 簡簡單單..      
依然无效..

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: