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 相关文章推荐
用JS剩余字数计算的代码
Jul 03 Javascript
JavaScript 学习笔记(十四) 正则表达式
Jan 22 Javascript
jQuery操作select的实例代码
Jun 14 Javascript
jQuery中[attribute!=value]选择器用法实例
Dec 31 Javascript
javaScript的函数对象的声明详解
Feb 06 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
js实现n秒倒计时后才可以点击的效果
Dec 20 Javascript
Bootstrap中的Panel和Table全面解析
Jun 13 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
Jul 26 Javascript
小程序登录态管理的方法示例
Nov 13 Javascript
javascript使用链接跨域下载图片
Nov 01 Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP的explode和implode的使用说明
2011/07/17 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
Django 实现下载文件功能的示例
2018/03/06 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
实例讲解Python3中abs()函数
2019/02/19 Python
python3下载抖音视频的完整代码
2019/06/05 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
《金色的脚印》教后反思
2014/04/23 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP