js图片无缝滚动插件使用详解


Posted in Javascript onMay 26, 2020

本文实例为大家分享了js图片无缝滚动插件的具体代码,供大家参考,具体内容如下

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>

js

;(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})
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JQUERY的两个ListBox子项互相调整的实现代码
May 07 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
SeaJS入门教程系列之完整示例(三)
Mar 03 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
Jun 30 Javascript
jquery实现搜索框常见效果的方法
Jan 22 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
AngularJS实现标签页的两种方式
Sep 05 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
prototype.js简单实现ajax功能示例
Oct 18 Javascript
实例讲解v-if和v-show的区别
Jan 31 Javascript
vue踩坑记录之数组定义和赋值问题
Mar 20 Javascript
解决vue+webpack项目接口跨域出现的问题
Aug 10 Javascript
vue中datepicker的使用教程实例代码详解
Jul 08 #Javascript
微信小程序实现类似微信点击语音播放效果
Mar 30 #Javascript
微信小程序如何访问公众号文章
Jul 08 #Javascript
JavaScript实现的开关灯泡点击切换特效示例
Jul 08 #Javascript
JavaScript实现的联动菜单特效示例
Jul 08 #Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 #Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 #Javascript
You might like
PHP 采集心得技巧
2009/05/15 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
node.js超时timeout详解
2014/11/26 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
用python写测试数据文件过程解析
2019/09/25 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
英语系本科生个人求职信
2013/09/21 职场文书
安全生产检讨书
2014/01/21 职场文书
便利店促销方案
2014/02/20 职场文书
解除同居协议书
2015/01/29 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers