【发布时间】:2012-11-20 22:03:08
【问题描述】:
我正在开发一个使用 jQuery 来实现仿列效果的网站。这是一个测试页面:http://goo.gl/IL3ZB。左边黄色的<aside> 高度在java 脚本中设置为.body_container div 的高度。高度设置正确。
问题是当我在 Firefox 17 中进行完全刷新 (Shift + F5) 时,<aside> 正确显示,高度正确,但 js 中的动画看到的高度要小得多。当我然后正常刷新页面时,java脚本也会看到正确的高度。
我该如何解决这个问题?
这是我的 js:
var floating_patents_bottom = 0;
$(window).load(function(){
$('.floating_patents').height( $('.body_container').height() );
floating_patents_bottom = ($('.body_container').height() > floating_patents_bottom ? $('.body_container').height() : floating_patents_bottom);
var toBottom = {
'top': floating_patents_bottom
};
});
var toTop = {
'position': 'absolute',
'top': '500px',
'display': 'none'
};
$(document).ready(function(){
$('.floating_patents').height( $('.body_container').height() );
floating_patents_bottom = ($('.body_container').height() > floating_patents_bottom ? $('.body_container').height() : floating_patents_bottom);
// floating_patents_bottom = $('.floating_patents').height();
var toBottom = {
'top': floating_patents_bottom
};
var patents = $(".floating_patents img");
patents.css(toTop);
patents.each(function(index) {
$(this).delay(index * 5000).css('margin','10px auto').fadeIn("slow").animate(toBottom , 15000, function(){
$(this).fadeOut("slow");
});
});
});
【问题讨论】:
-
多次调用
$('.body_container').height()是没有意义的。每次调用它时,浏览器都必须搜索 DOM 以获取值……它会进行多次搜索而不是一次搜索
标签: javascript jquery html css dimensions