zoukankan      html  css  js  c++  java
  • [js]如何更快的得到图片的高度和宽度

    我们往往有这样的需求,我们需要先图像的高度和宽度,然后做后续的处理。比较普遍的做法是等到图片的onload事件发生后再去得到图片的高度和宽度的。现在的问题是,图像的高度和宽度一定要在图像加载完之后才能得到吗?答案是否定的。浏览器在图片数据返回的时候就能知道图像的高度和宽度,只是我们不知道。可以用下面的例子证明:

    html:

    <html>
        <body>
            <div id="panel"></div>
            <script src="testify.js"></script>
        </body>
    </html>

     js:

    window.onload = function() {
        //var img = document.getElementById('testImg');
        var img=new Image();
        img.src = 'https://www.google.com.hk/images/nav_logo114.png?t=' + (new Date()).getTime();
        intervalId = setInterval(function() {
            if(img.width&&img.height){
                clearInterval(intervalId);
                document.getElementById('panel').innerHTML=document.getElementById('panel').innerHTML+","+(img.width+"-"+img.height);
            }
        }, 10);
        img.onload=function(){
            document.getElementById('panel').innerHTML=document.getElementById('panel').innerHTML+",loaded"
        }
    }

     输出:

    可以看出在loaded之前,高度和宽度就已经得到了。

    如果图片较大,较多,而且又要尽早的得到图片的大小,下面这篇博客提供了这样的方法,原理与上面的简单代码一样--用计时器不断检测图片的高度和宽度是否已经得到

     
  • 相关阅读:
    Maven pom.xml中添加指定的中央仓库
    命令行远程链接MySQL
    A required class was missing while executing org.apache.maven.plugins:maven-war-plugin:2.1.1:war
    mvn deploy命令上传包
    保存好你的密码
    PuTTY免输密码自动登录Linux
    ActiveMQ无法启动
    linux控制台批量杀进程
    dubbo入门之微服务客户端服务端配置
    dubbo入门之helloWorld
  • 原文地址:https://www.cnblogs.com/orchid/p/2649958.html
Copyright © 2011-2022 走看看