js 实现横向轮播效果

参考:https://www.cnblogs.com/LIUYANZUO/p/5679753.html

 

html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <title>js横向轮播</title>
        <style type="text/css">
            body {
                margin: 0;
            }

            #container {
                position: relative;
                width: 100%;
                height: 300px;
                overflow: hidden;
                z-index: -1;
            }

            #list {
                position: absolute;
                width: 4200px;
                height: 300px;
            }

            #list .img {
                float: left;
                /* width: 375px; */
                height: 300px;
            }
        </style>
    </head>
    <body>
        <div id="container">
            <div id="list"></div>
        </div>
    </body>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script type="text/javascript">
        window.onload = function() {
            var container = document.getElementById('container'),
                list = document.getElementById('list'),
                index = 1;
            $('#list').css('left', -screen.width + 'px');
            var timer;
            var imgList = [{
                        src: 'img/1.jpg'
                    },
                    {
                        src: 'img/2.jpg'
                    },
                    {
                        src: 'img/3.jpg'
                    },
                    {
                        src: 'img/4.jpg'
                    },
                    {
                        src: 'img/5.jpg'
                    }
                ],
                l = imgList.length - 1,
                len = imgList.length,
                w = screen.width,
                string = '';
            string = makeStr(imgList, l);
            $('#list').append(string);
            var j = 0;
            while (j < imgList.length) {
                string = makeStr(imgList, j);
                $('#list').append(string);
                j++;
            }
            string = makeStr(imgList, 0);
            $('#list').append(string);
            $('#list .img').css('width', screen.width + 'px');

            function makeStr(arr, i) {
                string = "<div class='img' style='background:url(" +
                    arr[i].src + ") no-repeat;background-size:100%'/></div>";
                return string;
            }

            function animate(offset) {
                var newLeft = parseInt(list.style.left) + offset;
                list.style.left = newLeft + 'px';
                if (newLeft > -w) {
                    list.style.left = w * len + 'px';
                }
                if (newLeft < -w * len) {
                    list.style.left = -w + 'px';
                }
            }

            function play() {
                timer = setInterval(function() {
                    start();
                }, 2000)
            }

            function start() {
                index += 1;
                if (index > len) {
                    index = 1
                }
                animate(-w);
            };

            function stop() {
                clearInterval(timer);
            }
            if (imgList.length > 1) {
                play();
            }
        }
    </script>
</html>

 

转载于:https://www.cnblogs.com/linjiangxian/p/11460760.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用JavaScript实现图片横向滚动轮播图的示例代码: ```html <!DOCTYPE html> <html> <head> <style> * { margin: 0; padding: 0; } div { width: 400px; height: 320px; } #ads { border: 4px solid green; height: 320px; overflow: hidden; position: relative; } #ads li { list-style: none; height: 320px; } img { width: 400px; height: 320px; position: absolute; } </style> </head> <body> <div> <ul id="ads"> <li><img src="image1.jpg" alt="Image 1"></li> <li><img src="image2.jpg" alt="Image 2"></li> <li><img src="image3.jpg" alt="Image 3"></li> </ul> </div> <script> var ads = document.getElementById("ads"); var images = ads.getElementsByTagName("img"); var currentIndex = 0; function slideImages() { for (var i = 0; i < images.length; i++) { images[i].style.display = "none"; } currentIndex++; if (currentIndex >= images.length) { currentIndex = 0; } images[currentIndex].style.display = "block"; setTimeout(slideImages, 2000); // 每隔2秒切换图片 } slideImages(); </script> </body> </html> ``` 这段代码使用了JavaScript实现图片横向滚动的轮播效果。首先,通过获取`ads`元素和其中的`img`元素,然后定义一个变量`currentIndex`来表示当前显示的图片索引。`slideImages`函数用于切换图片,它会将所有图片隐藏,并将`currentIndex`加1,如果`currentIndex`超过了图片数量,则将其重置为0。然后,将当前图片显示出来,并使用`setTimeout`函数来定时调用`slideImages`函数,以实现自动切换图片的效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值