【JavaScript】用原生js实现无缝滚动的实例

news/2024/7/19 15:19:59 标签: js, javascript

无缝滚动

功能:向左滑、向右滑、鼠标移入滑动暂停、鼠标移出滑动继续。

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {padding: 0; margin: 0; }
        #div1 {width: 1200px; height: 300px; background: red; margin: 100px auto; position: relative; overflow: hidden;}
        #div1 ul {position: absolute; left: 0; top: 0;}
        #div1 ul li {list-style: none; width: 300px; height: 300px; float: left;}
        #div1 img {width: 100%;}
    </style>
</head>

<body>
    <input type="button" value="向左走" id="btn1">
    <input type="button" value="向右走" id="btn2">
    <div id="div1">
        <ul>
            <li><img src="img1.jpg"></li>
            <li><img src="img2.jpg"></li>
            <li><img src="img3.jpg"></li>
            <li><img src="img4.jpg"></li>
        </ul>
    </div>
    <script>
        window.onload = function () {
            var oDiv = document.getElementById('div1')
            var oUl = oDiv.getElementsByTagName('ul')[0]
            var aLi = oUl.getElementsByTagName('li')
            var oBtn1 = document.getElementById('btn1') //向左走
            var oBtn2 = document.getElementById('btn2') //向右走
            var timer = null
            var turn = 5 //用来控制方向,-5向左 5向右
            oUl.innerHTML += oUl.innerHTML //将li元素复制
            oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px';
            function move() {
                if (oUl.offsetLeft < -oUl.offsetWidth / 2) { //向左走,当滑动到一半时
                    oUl.style.left = '0px'
                }
                if (oUl.offsetLeft > 0) { //向右走
                    oUl.style.left = -oUl.offsetWidth / 2 + 'px'
                }
                oUl.style.left = oUl.offsetLeft + turn + 'px'
            }
            timer = setInterval(move, 30)
            oDiv.onmouseover = function () {
                clearInterval(timer)
            }
            oDiv.onmouseout = function () {
                timer = setInterval(move, 30)
            }
            oBtn1.onclick = function(){
                turn = -5
            }
            oBtn2.onclick = function(){
                turn = 5
            }

        }
    </script>

</body>

 


http://www.niftyadmin.cn/n/497523.html

相关文章

Android -- NestedScrolling滑动机制

1&#xff0c;如今NestedScrolling运用到很多地方了&#xff0c;要想好看一点的滑动变换&#xff0c;基本上就是使用这个来完成的&#xff0c;让我们来简单的了解一下。 2&#xff0c;NestedScrolling机制能够让父View和子View在滚动式进行配合&#xff0c;其基本流程如下&…

【JavaScript】一篇弄懂offsetWidth、offsetHeight、offsetleft、offsetTop和offsetParent

offsetWidth、offsetHeight offsetWidth&#xff1a;元素的布局宽度。 offsetHeight&#xff1a;元素的布局高度。 offsetWidth、offsetHeight 的计算&#xff1a;width/height padding border-width&#xff0c;受 box-sizing 影响。 <head><meta charset"UTF…

【JavaScript】DOM基础之节点、以及通过className获取元素

节点 childNodes <body><ul id"ul1"><li><span></span></li><li></li></ul><hr><ol><li>childNodes&#xff1a;子节点的集合</li><li>子节点是被选元素的第一层标签,span标签…

ECSHOP忘记密码的2种处理方法恢复管理权限

在我们使用ECSHOP的时候有的时候由于粗心&#xff0c;忘记后台管理员密码的时候也经常常见&#xff0c;这给我们带来不少问题&#xff0c;那么怎么来解决这个问题呢&#xff1f;方法有二&#xff1a;首先&#xff0c;第一种方法就是利用PHPMYADMIN登录ECSHOP的MYSQL数据库&…

【JavaScript】原生js中DOM操作之元素创建、插入和移除

创建元素 <body><input type"text" id"txt1"><input type"button" id"btn1" value"创建"><ul id"ul1"></ul><script>window.onload function () {var oUl document.getEl…

视频编辑软件EDIUS 6.02使用体会和功能、技巧介绍

我是在地方电视台工作的&#xff0c;过去几年我都是用canopus康能普视的dvrex做视频编辑&#xff0c;那是win2000平台下&#xff0c;很大的一张canopus康能普视的dvrex卡&#xff0c;很贵&#xff0c;后来购了康能普视dv1394卡和lets edit2软件&#xff0c;简单易用压缩速度快&…

EDIUS出错,打开后一直出现该内存不能为read

怎样设置虚拟内存&#xff1a;/&#xff08;一&#xff09;合理设置虚拟内存/虚拟内存的设定主要根据你的物理内存大小和电脑的用途来设定&#xff0c;在桌面上用鼠标右击“我的电脑”&#xff0c;选择“属性”&#xff0c;就可以看到内存了。根据微软公司的建议&#xff0c;虚…

bootstrap-分页-禁用和激活状态

说明给不能点击的链接添加 .disabled 类、给当前页添加 .active 类示例1<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta…