• JS图片切换动画版


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body{
            margin: 0;
            background-color: #5e5e5e;
        }
        #box{
            width: 857px;
            height: 574px;
            padding-top: 126px;
            padding-left:143px;
            background: url(img/bg.png) no-repeat;
            margin: 0px auto;
        }
        #wrap{
            width: 700px;
            height: 420px;
        }
        #wrap div{
            width: 10px;
            height: 420px;
            background: url(img/01.png) no-repeat;
            float: left;
            transition: .5s;
        }
    </style>
    </head>
    <body>
    <div id="box">
        <div id="wrap">
        <!-- <div style="background-position-x: 0px"></div>
        <div style="background-position-x: -10px"></div>
        <div style="background-position-x: -20px"></div>
        <div style="background-position-x: -30px"></div>-->
        </div>
    </div>
    <script>
    
        window.onload = function(){
            
            // 第一步动态创建70个子div,然后利用背景图片拼出完整的图片
            var wrap = document.getElementById('wrap');
            var str = "";
            var len = 70;
    
            // 动态创建70个子div存在str变量中,并添加到wrap里面
            for (var i = 0; i < len; i++) {
                str += '<div style="background-position-x: '+(-10*i)+'px"></div>';
            };
            wrap.innerHTML = str;
    
            var divs = wrap.getElementsByTagName('div');
            var srcNum = 2;
            var timer;
            var num = 0;
    
            // 让第一张图子元素慢慢隐藏,第二张图子元素慢慢显示
            function tab(n){
                // 如果上一个子div存在
                if(divs[n-1]){
                    divs[n-1].style.opacity = 1;
                }
                // 如果当前子div存在
                if(divs[n]){
                    divs[n].style.opacity = 0;
                    divs[n].style.backgroundImage ='url(img/0'+srcNum+'.png)';
                }
            };
            
            move();
    
            // 封装一个move函数
            function move(){
                timer = setInterval(function(){
                    tab(num);
                    num++;
                    console.log(num);    //这里可以发现num在不停的变大,定时器没有关掉,得做判断
    
                    if(num == 71){
                        clearInterval(timer);
                        num = 0;
                        // 这里可以看到切换到第二张图就不动了,这里就得改变图片的src
                        srcNum ++;
                        if(srcNum == 6){
                            srcNum = 1;
                        }
                    }
                },70);
            };
            setTimeout(move,500);
    
        };
    </script>
    </body>
    </html>
  • 相关阅读:
    C++11 指针成员与拷贝构造(浅拷贝与深拷贝)
    C++11 委派构造函数
    C++11 继承构造函数
    C++11 局部和匿名类型作模板实参
    C++11 外部模板
    C++11 函数模板的默认模板参数
    2D游戏新手引导点光源和类迷雾实现
    UVA 12293
    【算法】8 图文搭配诠释三种链表及其哨兵
    小米面试
  • 原文地址:https://www.cnblogs.com/bokebi520/p/6003070.html
Copyright © 2020-2023  润新知