js图片预加载---for与onload事件,图片数据模型到界面的单项绑定,使用interval模拟循环操作

<!--
-->
<html>
    <head>
        <title></title>
        <meta charset="utf-8">
        <script src="imgloader.js"></script>
    </head>
    <body id ="body">
        <!--
            <button id="stop">stop</button>
        -->
    </body>
    <script>
    //1.使用timer模拟循环操作
    /*
    var display = true; 
    var timer = setInterval(function(){
        if(!display){
            clearInterval(timer);
        }
        console.log("hello");
    },100);
        var stop = document.getElementById("stop");
        stop.onclick = function(){
            display = false;   
        }
    */

    //2.img 对象 与imgDom 对象的差别
    /*
    var img = new Image();
        img.src = "1.jpg";
    var imgDom = document.createElement("img");
        imgDom.src = "1.jpg";
    var body = document.getElementById("body");
        body.appendChild(img);
        body.appendChild(imgDom);
    //二者在加入dom树后效果一致
    //加入后动态改变src又如何
        //img.src = "2.jpg";
        //imgDom.src = "2.jpg";
    //都能够实现:数据模型--->画面的单项绑定
    */

    //3.onload事件的机制,它是不是会被覆盖
    /*
    for(var i=1;i<=16;i++){
        var url = i+".jpg"
        var img = new Image();
        img.src = url;
        img.onload = function(){
            console.log(img.width);
        }
    }
    */
    var i = 1;
    var timer = setInterval(function(){
        var url = i+".jpg"
        var img = new Image();
        img.src = url;
        if(img.complete == true){
            console.log(img.width);
            i++;
            if(i>16){
                clearInterval(timer);
            }
        }
    },30);
    //结论:循环做法只有最后一张图能打印出来
    //使用timer做法可以正常进行
    </script>
</html>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。