码迷,mamicode.com
首页 > Web开发 > 详细

js图片滑动展示

时间:2020-12-16 12:59:49      阅读:7      评论:0      收藏:0      [点我收藏+]

标签:样式   列表   length   list   ntb   控制   方法   func   tee   

gitee地址

https://gitee.com/ElevenHuntOne/js-image-slide

html

<!-- html里只用写一个div就行了,带上id为imgs -->
    <div id = "imgs"></div>

css

        /* 样式 */
        #imgs {
            margin-left: 10%;
            width: 80%;
            height: 240px;
            margin-top: 80px;
            background-color: azure;
            position: relative;
            overflow: hidden;
        }
        #imgs ul {
            position: absolute;
            padding: 0;
        }
        #imgs ul li {
            float: left;
            list-style: none;
            width: 260px;
            height: 200px;
        }
        #imgs ul li img{
            width: 240px;
            height: 200px;
        }

js

    // 滑动方法
    function scroll(to, time) {
        $("#imgs").find("ul").stop().animate({left:  to +  "px"}, time)
    }
    // 初始化方法
    $(function() {
        // 图片列表
        const imgList = [‘1.jpg‘, ‘2.jpg‘, ‘3.jpg‘, ‘4.jpg‘, ‘5.jpg‘, ‘1.jpg‘, ‘2.jpg‘, ‘3.jpg‘, ‘4.jpg‘, ‘5.jpg‘]
        // 滑动速度
        const speed = 800
        // 获取div然后循环往里边插入ul、li、img
        let div = document.getElementById("imgs")
        let ul = document.createElement("ul")
        ul.style.left = div.offsetWidth + "px"
        ul.style.width = 260 * imgList.length + "px"
        div.appendChild(ul)
        let toLeft = div.offsetWidth - 260 * imgList.length
        for(i in imgList) {
            imgPath = imgList[i]
            let li = document.createElement("li")
            let img = document.createElement("img")
            img.src = imgPath
            li.appendChild(img)
            ul.appendChild(li)
        }
        let time = speed * imgList.length
        let time1 = parseInt( (20 - toLeft) / 260 * speed)
        scroll(toLeft, time)
        // 通过计时器控制循环左右滑动
        setTimeout("scroll(20, " + time1 + ")", time)
        setTimeout("scroll(" + toLeft + ", " + time1 + ")", time + time1)
        setTimeout("setInterval(‘scroll(" + 20 + ", " + time1 + ");‘, "+ time1 * 2 +")", time)
        setTimeout("setInterval(‘scroll(" + toLeft + ", " + time1 + ");‘, "+ time1 * 2 +")", time + time1)
    });

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>
    <style>
        /* 样式 */
        #imgs {
            margin-left: 10%;
            width: 80%;
            height: 240px;
            margin-top: 80px;
            background-color: azure;
            position: relative;
            overflow: hidden;
        }
        #imgs ul {
            position: absolute;
            padding: 0;
        }
        #imgs ul li {
            float: left;
            list-style: none;
            width: 260px;
            height: 200px;
        }
        #imgs ul li img{
            width: 240px;
            height: 200px;
        }
    </style>
</head>
<body>

    <!-- html里只用写一个div就行了,带上id为imgs -->
    <div id = "imgs"></div>


</body>
<script>
    // 滑动方法
    function scroll(to, time) {
        $("#imgs").find("ul").stop().animate({left:  to +  "px"}, time)
    }
    // 初始化方法
    $(function() {
        // 图片列表
        const imgList = [‘1.jpg‘, ‘2.jpg‘, ‘3.jpg‘, ‘4.jpg‘, ‘5.jpg‘, ‘1.jpg‘, ‘2.jpg‘, ‘3.jpg‘, ‘4.jpg‘, ‘5.jpg‘]
        // 滑动速度
        const speed = 800
        // 获取div然后循环往里边插入ul、li、img
        let div = document.getElementById("imgs")
        let ul = document.createElement("ul")
        ul.style.left = div.offsetWidth + "px"
        ul.style.width = 260 * imgList.length + "px"
        div.appendChild(ul)
        let toLeft = div.offsetWidth - 260 * imgList.length
        for(i in imgList) {
            imgPath = imgList[i]
            let li = document.createElement("li")
            let img = document.createElement("img")
            img.src = imgPath
            li.appendChild(img)
            ul.appendChild(li)
        }
        let time = speed * imgList.length
        let time1 = parseInt( (20 - toLeft) / 260 * speed)
        scroll(toLeft, time)
        // 通过计时器控制循环左右滑动
        setTimeout("scroll(20, " + time1 + ")", time)
        setTimeout("scroll(" + toLeft + ", " + time1 + ")", time + time1)
        setTimeout("setInterval(‘scroll(" + 20 + ", " + time1 + ");‘, "+ time1 * 2 +")", time)
        setTimeout("setInterval(‘scroll(" + toLeft + ", " + time1 + ");‘, "+ time1 * 2 +")", time + time1)
    });
</script>
</html>

js图片滑动展示

标签:样式   列表   length   list   ntb   控制   方法   func   tee   

原文地址:https://www.cnblogs.com/zhangA/p/14121105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!