美文网首页
2018-11-07day7轮播效果(作业)

2018-11-07day7轮播效果(作业)

作者: MW演员 | 来源:发表于2018-11-07 21:40 被阅读0次

一、简单轮播效果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            #adv {
                width: 940px;
                margin: 50px auto;
            }
            #adv ul {
                width: 120px;
                height: 30px;
                margin: 0 auto;
                position: relative;
                top: -30px;
            }
            #adv li {
                width: 30px;
                height: 30px;
                list-style: none;
                float: left;
                color: #ccc;
                cursor: pointer;
            }
            #adv li:first-child {
                color: lightseagreen;
            }
        </style>
    </head>
    <body>
        <div id="adv">
            <img src="img/slide-1.jpg" alt="">
            <ul>
                <li class="dot">●</li>
                <li class="dot">●</li>
                <li class="dot">●</li>
                <li class="dot">●</li>
            </ul>
            
            <script type="text/javascript">
                // 函数声明会自动先声明
                var index = 0;
                var timeId;
                var images = ['slide-1.jpg', 'slide-2.jpg', 'slide-3.jpg', 'slide-4.jpg'];
                // 获取指定的标签名的标签(返回数组)
                var img = document.querySelector('#adv>img');
                var dots = document.querySelectorAll('#adv li');
                // 绑定事件
                for (var i = 0; i < dots.length; i += 1) {
                    // 动态绑定一个index属性(注意,这是关键)
                    dots[i].index = i;
                    dots[i].addEventListener('click', function(evt) {
                        var index = evt.target.index;
                        changeDotColor(index);
                        img.src = 'img/' + images[index];
                        if(timeId) {
                            window.clearInterval(timeId);
                            timeId = 0;
                        }
                    });
                    
                    dots[i].addEventListener('mouseout', startIt);
                }
                
                startIt();

                function startIt() {
                    if(!timeId) {
                        // 返回值是计时器id
                        timeId = window.setInterval(function() {
                            index += 1;
                            index %= images.length;
                            changeDotColor(index);
                            img.src = 'img/' + images[index];
                        }, 2000);
                    }
                }
                
                function changeDotColor(index) {
                    for (var i = 0; i < dots.length; i += 1) {
                        dots[i].style.color = '#ccc';
                    }
                    
                    dots[index].style.color = 'lightseagreen';
                }
                
            </script>
        </div>
    </body>
</html>

二、缩略图预览效果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>浏览效果</title>
        <style type="text/css">
            /* 动态绑定属性 */
            * {
                margin: 0;
                padding: 0;
            }
            #imgBox {
                width: 600px;
            }
            
            #imgBox #img1 {
                width: 600px;
                height: 300px;
                margin-left: 30px;
                margin-top: 30px;
            }
            
            #imgBox #img {
                width: 50px;
                height: 50px;
                position: relative;
                left: 200px;
            }
    
        </style>
    </head>
    <body>
        <div id="imgBox">
            <img id="img1" src="img/slide-1.jpg" >
            <img id="img" src="img/thumb-1.jpg" />
            <img id="img" src="img/thumb-2.jpg" />
            <img id="img" src="img/thumb-3.jpg" />
        </div>
        
        <script type="text/javascript">
            // 回调函数在for循环的时候并没有执行,所以回调函数中取不到正确的i值
            // JavaScript是动态弱类型语言可以在运行时动态给对象添加属性
            var bigImg = document.querySelector('#img1');
            var imgs = document.querySelectorAll('#img');
        
            for (var i = 0; i < imgs.length; i++ ) {
                // 动态添加属性
                imgs[i].picture = 'img/slide-' + (i + 1) + '.jpg';
                
                imgs[i].addEventListener('mouseover', function(evt) {
                    img = evt.target || evt.srcElement;
                    bigImg.src = img.picture;       
                });
            }
            
        </script>
        
    </body>
</html>

相关文章

网友评论

      本文标题:2018-11-07day7轮播效果(作业)

      本文链接:https://www.haomeiwen.com/subject/nfpbxqtx.html