【问题标题】:jQuery calculate $(document).height() too late?jQuery 计算 $(document).height() 为时已晚?
【发布时间】:2011-04-15 21:43:46
【问题描述】:

好的,我正在做这个页面:http://www.muzykakoncerty.pl/。我必须动态计算几个css属性才能获得好的效果。问题是,如果我使用 $(document).height() 那么在第一次刷新之前(每个浏览器?!)使用 $(document).height() 的元素计算错误。自己退房。在主页问题上是右居中的文字“baw się ...”,在另一页上是左侧的主照片。只要尝试刷新页面,你就会看到不同

任何想法是什么导致了问题?

编辑: 好的!我知道什么是问题。可能浏览器正在加载并获得太晚的图形及其大小(宽度和高度)。 新问题是:如何检查图形是否加载?

编辑2: 这是显示问题的视频: http://www.youtube.com/watch?v=8GCc_S7SdtI

【问题讨论】:

  • 我觉得不错!!刷新后我没有看到任何变化:(我在 win 7 上使用 chrome 10
  • 老实说,我没有看到/理解到底是什么问题。在我看来一切都很好
  • 您是否只是想为您的网站吸引流量 :)
  • 发布您的代码,它应该在哪里?
  • 尝试使用最新的浏览器。可能会有所帮助。

标签: jquery


【解决方案1】:

window.onload 在加载图像之前不应触发。你可以等待那个特定的事件。注意 $.ready 是 not window.onload;它发生在加载之前。我不确定您是否可以使用 jQuery 绑定 onload 事件,但您可能可以使用 .bind 方法。

$(window).bind('load', function() {
     alert($(document).height());
});

【讨论】:

  • 有趣的想法,我会看看:)
  • 或者...我可以制作预加载器:D
【解决方案2】:

我不确定确切的问题是什么,但如果你想获取特定对象的 css 属性,那么你可以使用..offset

var ofset = $('#id').offset();
var hieght = ofset.top;
var left = ofset.left;

希望这会对您有所帮助...如果我猜对了。

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 2013-04-22
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2012-10-08
    • 2012-01-02
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多