1

我一直在用 Firefox 和 IE 8 开发我的网站。主页上有一个图像悬停效果(以及摄影和绘图部分)。您可以在http://www.dgendill.com的源代码中查看代码。在 Firefox 中,效果完美。在 IE 8 中,它可以工作,但速度要慢得多。这是我尝试提高速度的方法:

  1. 使用优化的 jQuery 库
  2. 缩小了 jQuery 遍历 DOM 的范围。例如:

    $(".sectionLink","#divLandingPage").hover(
        function(){
            $(this).addClass("hover");
            $(this).fadeTo(100,.8);
        },
        function(){
            $(this).removeClass("hover");
            $(this).fadeTo(100,.99);
        }
    );
    
  3. 我试过改变图像的显示类型。显示块、内联块和内联。

任何想法为什么 IE 8 这么慢?我的 HTML 是有效的 4.01。

这是一个遇到同样问题的人:http: //mdasblog.wordpress.com/2009/07/24/jquery-fun-with-animation-and-opacity/

我决定只禁用 IE 中的悬停效果。

if(jQuery.support.opacity) {
    $(".sectionLink","#divLandingPage").hover(
        function(){
            $(this).addClass("hover");
            $(this).fadeTo(100,.8);
    },
        function(){
            $(this).removeClass("hover");
            $(this).fadeTo(100,.99);
    }
    );
}
4

2 回答 2

0

我发现当元素应用了 CSSposition属性时,jQuery 的动画效果在所有版本的 IE 中都会出现问题。通常将元素包装在 div 中而不position应用属性将解决问题。更多信息可以在 jQuery slideToggle 和 Internet Explorer中找到。

于 2009-12-08T21:43:09.760 回答
0
    $(".sectionLink img").hover(function(){ 
        $(this).addClass("hover").fadeTo(100,.8);
    }, function(){ 
        $(this).removeClass("hover").fadeTo(100,.99); 
    });

您可以尝试将事件处理程序直接附加到图像上,或者如果这没有帮助,请尝试使用 animate 方法。一个可能的原因可能是 IE 不支持不透明度作为 css 属性。

顺便说一句,您应该链接代码。

load() 事件在下载和呈现内容时触发。当文档准备好处理/操作时,ready() 事件触发。

于 2009-12-08T20:41:50.687 回答