【发布时间】:2014-08-15 12:30:41
【问题描述】:
我一直在用 Firefox 和 IE 8 开发我的网站。主页上有一个图像悬停效果(以及摄影和绘图部分)。您可以在http://www.dgendill.com 的源代码中查看代码。在 Firefox 中,效果完美。在 IE 8 中,它可以工作,但速度要慢得多。以下是我尝试提高速度的方法:
- 使用了优化的 jQuery 库
-
缩小了 jQuery 遍历 DOM 的范围。例如:
$(".sectionLink","#divLandingPage").hover( function(){ $(this).addClass("hover"); $(this).fadeTo(100,.8); }, function(){ $(this).removeClass("hover"); $(this).fadeTo(100,.99); } ); 我已尝试更改图像的显示类型。显示块、内联块和内联。
任何想法为什么 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);
}
);
}
【问题讨论】:
-
我不认为这是解决方案,但您不需要创建 window.load 事件。您在该事件中所做的一切都可以在 document.ready 事件中完成。
-
附带问题:当所有图像完成加载后,document.load 是否会激活?看来我只能在使用 window.load 时才能让它工作。
-
找到不同之处:4loc.wordpress.com/2009/04/28/documentready-vs-windowload 感谢您的提示,我将切换到其中一个或另一个
-
IE8 及以下的 JS 性能很差,而且 jQuery 必须做更多的工作才能使不透明度工作。这意味着您的动画最终会变得缓慢而跳跃。不幸的是,没有真正的解决方法
标签: jquery internet-explorer-8 hover fadeto