V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Windweller
V2EX  ›  程序员

问一个jQuery读取div高度时图片尚未加载完成的问题

  •  
  •   Windweller · Sep 21, 2013 · 7278 views
    This topic created in 4613 days ago, the information mentioned may be changed or developed.
    jQuery(function() {

    var contentHeight = jQuery("#left-content-space").height();
    alert(contentHeight);

    jQuery("#status-feed").slimScroll({
    height : contentHeight,
    color : "#D1D7D7",
    position: "left"
    });
    });

    我用了no-conflict模式。。所以变成jQuery而不是$。。

    主要问题在于。。HTML里面的left-content-space的div框内有多张图片。图片将会撑大这个div框。div框在图片读取完成的时候有550px的高度,在图片没读完的时候是220px的高度。。请问有没有什么办法等图片读取完后再获得div的高度呐?
    5 replies    1970-01-01 08:00:00 +08:00
    fiture
        1
    fiture  
       Sep 21, 2013   ❤️ 1
    那就等图片,加载完成之后再读取,目标元素的高度:

    jQuery有个load事件,在目标元素以及所有子元素加载完成后触发,但是各种浏览器兼容都太一致,说说大体的:

    https://gist.github.com/fiture/6645811

    还有一种方法是,后台读取图片高度,在html里面明确指出图片高度以及宽度:
    <img src="xx.jpg" alt="xx" width="xx" height="yy" />
    reducm
        2
    reducm  
       Sep 21, 2013 via iPad
    在做markdown的预览滚动吗?我之前做的时候预到这问题

    http://desandro.github.io/imagesloaded/ 用这类库去回调,另外还要处理缓存图片的情况
    slixurd
        3
    slixurd  
       Sep 21, 2013
    image本身也有onload函数,当然也可以像一楼一样直接用JQuery的load,要么就服务器端手动传参数
    Windweller
        4
    Windweller  
    OP
       Sep 21, 2013
    @fiture 唔,一个小问题是,if ($img.width() && $img.height()) 是判断这个能读取出来了么。。以及。。var me = arguments.callee; 这是。。什么意思。。这个arguments是从哪里来的诶?
    jarontai
        5
    jarontai  
       Sep 21, 2013
    我以前也做过类似的,建议还是使用一个图片加载插件比较好; 楼上 reducm 推荐的这个好像不错
    http://desandro.github.io/imagesloaded/,可单独使用,也可以作为jq的插件使用,调用也方便;
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   961 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 21:18 · PVG 05:18 · LAX 14:18 · JFK 17:18
    ♥ Do have faith in what you're doing.