分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

纯js无缝滚动

发布时间:2023-09-06 02:28责任编辑:彭小芳关键词:js

 HTML代码

<!--父容器要使用overflow: hidden;--><div id="imgsList" style="height:150px;width:980px;overflow: hidden;"> ?????<!--滚动容器--> ???<div id="marquee_self"> ???????<ul id="marquee_ul"> ???????????<li><img src="" width="180px" height="100px"></li> ???????????<li><img src="" width="180px" height="100px"></li> ???????????<li><img src="" width="180px" height="100px"></li> ???????</ul> ???</div></div>

CSS代码

#marquee_self *{ ???margin: 0; ???padding: 0;}#marquee_self{ ???width: 1620px; ??//所有图片长度个数*width ???height: 100px; ??//图片高度 ???//margin: 100px auto; ?居中 ???background-color: #646464; ???position: relative; ???overflow: hidden;}#marquee_self ul{ ???position:absolute; ???left:0; ???top:0; ???overflow: hidden; ?//li中超出部分隐藏掉 ???background-color: #3b7796; ?//背景色用来看问题}#marquee_self ul li{ ???float: left; ???//左对齐变为图片水平 ???width: 180px; ??//图片宽度 ???height: 100px; ?//图片高度 ???list-style: none; ?//无间隙}

JS代码

<script type="text/javascript"> ???window.onload = function(){ ???????var oDiv = document.getElementById(‘marquee_self‘); ??//容器节点 ???????var oUl = document.getElementById(‘marquee_ul‘); ???//ul节点 ???????var speed = -2; ??//初始化速度,默认往左 ???????oUl.innerHTML += oUl.innerHTML;//ul中图片内容翻倍 ???????var oLi= oUl.getElementsByTagName(‘li‘); ?//获取ul节点下所有li集合 ???????oUl.style.width = oLi.length*180+‘px‘;//设置ul的宽度翻倍后的宽度,使图片可以放下 ???????/*var oBtn1 = document.getElementById(‘btn_left‘); ?左移动按钮 ???????var oBtn2 = document.getElementById(‘btn_right‘); ?右移动按钮*/ ???????function move(){ ???????????if(oUl.offsetLeft<-(oUl.offsetWidth/2)){ ???//向左滚动,当向左滚动超过总ul长度一半时 ???????????????oUl.style.left = 0; ??//变为从头开始 ???????????} ???????????if(oUl.offsetLeft > 0){ ???????//向右滚动,当靠右的图1移出边框时 ???????????????oUl.style.left = -(oUl.offsetWidth/2)+‘px‘; ???????????} ???????????oUl.style.left = oUl.offsetLeft + speed + ‘px‘; ??//图片移动 ???????} ???????/*oBtn1.addEventListener(‘click‘,function(){ ??//向左移动按钮点击事件 ???????????speed = -2; ???????},false); ???????oBtn2.addEventListener(‘click‘,function(){ ???//向右移动按钮点击事件 ???????????speed = 2; ???????},false);*/ ???????var timer = setInterval(move,30);//全局变量 ,保存返回的定时器 ???????oDiv.addEventListener(‘mouseout‘, function () { ?//鼠标移开添加计时器 ???????????timer = setInterval(move,30); ???????},false); ???????oDiv.addEventListener(‘mousemove‘, function () { ?//鼠标移入清除定时器 ??????????clearInterval(timer); ???????},false); ???}</script>

纯js无缝滚动

原文地址:https://www.cnblogs.com/aeolian/p/10200499.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved