zoukankan      html  css  js  c++  java
  • 图片预加载

    在编码过程中,图片处理经常会遇到问题

    看如下这段代码:

    HTML部分

    <div id="container">
        <img src="css系列/imgs/旋转木马的图片/2.jpg" alt="" id="img">
    </div>

    Js部分:

    var oImg = document.getElementById("img");
    console.log(oImg.offsetWidth);

    这个时候我们想要控制台弹出的是图片的宽度,但实际控制台弹出的是0,原因是因为图片加载的问题.script标签写在body的最底层能保证img标签加载完,却保证不了资源文件是不是加载完.所以会出现这种情况

    再看下面一段代码:

    <div id="container">
        <!--<img src="css系列/imgs/旋转木马的图片/2.jpg" alt="" id="img">-->
    </div>

    <script>
        var oContainer = document.getElementById("container");
        var oImg = new Image();
        oImg.src = "img/1.jpg";
        oImg.onload = function(){
            oContainer.appendChild(oImg);
            alert(oImg.offsetWidth);

        };
    </script>

    图片不直接写在div,而是通过预加载加载进来.

    重点onload.将图片加载完成后,再输出宽度.这就是图片的预处理

    IE6下测试发现有问题,new Image有兼容性问题,所以解决兼容性的方法如下

    var oContainer = document.getElementById("container");
    var oImg = new Image();
    oImg.onload = function(){
        oContainer.appendChild(oImg);
        alert(oImg.offsetWidth);

    };
    oImg.src = "img/1.jpg";

    oImg.src放到onload的下面

  • 相关阅读:
    HTTP深入浅出 http请求
    ASP.NET MVC 4
    ASP.NET MVC 4 (十三) 基于表单的身份验证
    ASP.NET MVC 4 (十二) Web API
    ASP.NET MVC 4 (十一) Bundles和显示模式
    ASP.NET MVC 4 (十) 模型验证
    ASP.NET MVC 4 (九) 模型绑定
    ASP.NET MVC 4 (八) URL链接和Ajax帮助函数
    ASP.NET MVC 4 (七) 模板帮助函数
    ASP.NET MVC 4 (六) 帮助函数
  • 原文地址:https://www.cnblogs.com/yuqing-o605/p/6501950.html
Copyright © 2011-2022 走看看