JavaScript实现图片无缝滚动效果完整代码示例
作者:闭包旅人时间:2026-10-23 09:28:23浏览:276
本文提供了一套完整的JavaScript图片无缝滚动插件实现方案,涵盖CSS样式定义、HTML结构搭建及核心JS逻辑。通过示例代码展示了如何配置图片数组、控制滚动速度及初始化实例,适用于需要横向自动轮播效果的前端场景。
JavaScript图片无缝滚动实现方案
本文将分享一个JavaScript实现的图片无缝滚动插件的具体代码,供读者参考学习。
首先是CSS样式部分的定义。
ul {
list-style: none;
margin: 0;
padding: 0;
}
.slide-img-ul {
white-space: nowrap;
}
.slide-img-ul>li {
width: 100px;
height: 100px;
margin: 10px;
display: inline-block;
vertical-align: middle
}
.slide-img-ul>li>img {
width: 100%;
height: 100%;
max-width: 100%;
max-height: 100%;
}
接下来是HTML结构的构建。
<div id="slideScroll"></div>
<div id="slideFast"></div>
核心部分为JavaScript逻辑代码。
;(function(window , document) {
function createImg(ele , opt) {
var def = {
arrImg: [
{src:'../img/LOGO.png' , id:'0'},
{src:'../img/zu.png' , id:'1'},
{src:'../img/zu.png' , id:'2'},
{src:'../img/zu.png' , id:'3'},
{src:'../img/zu.png' , id:'4'},
] ,
currentData: 0,
time: 50 //滑动速度
}
//为ele添加css样式
ele.style.width = '240px';
ele.style.height = '120px';
ele.style.overflow = 'hidden';
ele.style.border = '1px solid #eee';
ele.style.boxShadow = '0 0 8px 2px #eee';
ele.style.position = 'relative';
//Object.assign(target , source) 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象 。 返回目标对象。
var obj = Object.assign(def , opt),
_ul = document.createElement('ul'),
str = '',
demo
_ul.setAttribute('class' , 'slide-img-ul')
obj.arrImg.map((item , index) => {
str+='<li><img src='+ item.src+' id='+item.id+'></li>'
})
demo=str+str //复制该组图片以达到无缝连接的视觉效果
_ul.innerHTML = demo
ele.appendChild(_ul)
var myWay = setInterval(function(){calData(_ul)}, obj.time) //定时器
function calData(element){
element.style.marginLeft = -(obj.currentData)+'px'
obj.currentData++
//(为什么*120 ?)图片总宽度(包括margin)为120px , 当第一组图片刚好溢出父级时 , 父级marginLeft置0;
if(obj.currentData > obj.arrImg.length*120 ) {
obj.currentData = 0;
}
}
ele.onmouseover = function() {
clearInterval(myWay)
}
ele.onmouseout= function() {
myWay = setInterval(function(){calData(_ul)}, obj.time)
}
}
window.createImg = createImg
}(window , document))
window.onload = function() {
new createImg(document.getElementById('slideScroll'))
new createImg(document.getElementById('slideFast') ,{time:10})
}
以上即为本文的全部内容,希望这些代码能对读者的学习有所帮助,同时也欢迎大家继续支持本站。
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
