原生js滑动轮播封装


Posted in Javascript onJuly 31, 2020

本文实例为大家分享了原生js滑动轮播的具体代码,供大家参考,具体内容如下

封装滑动轮播

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>cmm无缝轮播</title>
 <style type="text/css">
 *{margin: 0 ;padding : 0}
  #container{
   height: 470px;
   width: 590px;
   border: 1px solid red;
   position: relative;
   margin: 50px auto;
  }
  #box{
   position: absolute;
   list-style: none;
   
  }
  #box li{
   float: left;
  }
  #pages {
 width: 100%;
 height: 30px;
 background: #ccc;
 position: absolute;
 bottom: 0;
 }

 #pages i {
 width: 20px;
 height: 20px;
 display: inline-block;
 border-radius: 10px;
 background: #fff;
 margin: 5px;
 }

 #pages i.current {
 background: #f00;
 }

 #prev, #next {
 width: 45px;
 height: 100px;
 position: absolute;
 top: 0;
 bottom: 0;
 margin: auto;
 background: #ccc;
 line-height: 100px;
 text-align: center;
 font-size: 40px;
 color: #fff;
 }
 #next {
 right: 0;
 }
 </style>
</head>
<body>
 <div id="container">
 <ul id="box">
 <li><img src="images/1.jpg"></li>
 <li><img src="images/2.jpg"></li>
 <li><img src="images/3.jpg"></li>
 <li><img src="images/4.jpg"></li>
 </ul>
 <div id="pages"></div>
 <div id="prev"><</div>
 <div id="next">></div>
 </div>

 <script src="js/tools.js"></script>
 <script>
  var lis = $("li"),
   length = lis.length,
   liWidth = lis[0].clientWidth,
   currentIndex = 0,
   nextIndex = 1,
   timer = null,
   move = null,
   circls = null,
   durations = 2000;

 // 动态设置ul宽度
 $("#box").style.width = length * liWidth + "px";

 // 动态设置小圆点
 var html = "";
 for(var i = 0 ;i <length ;i++){
  html += "<i></i>"
 }
 $("#pages").innerHTML= html;
 circls = $("i");
 circls[0].className = "current";

 // 切换动画
 move = function(){
  // 设置box运动终点值
  var _left = -1 * nextIndex * liWidth;

  // 开始动画
  animate($("#box"),{left:_left},200)

  // 修改小圆点样式
  circls[currentIndex].className = "";
  circls[nextIndex].className = "current";

  // 修改索引
  currentIndex = nextIndex;
  nextIndex++;
  if(nextIndex >= length){
   nextIndex = 0;
  }
 }


 // 自动动画
 timer = setInterval(move, durations)

 // container中鼠标移入,移出事件
 on($("#container"),"mouseenter",function(){
  clearInterval(timer);
 })
 on($("#container"),"mouseleaver",function(){
  timer = setInterval(move, durations);
 })

 // 点击小圆点,切换至对应的图片
 on($("#pages"),"click",function(e){
  e = e || event;
  var src = e.target || src.Element;
  if(src.nodeName === "I"){
   var _index = Array.from(circls).indexOf(src);
   if(_index === currentIndex){
    return
   }
   nextIndex = _index;
   move();
  }
 })

 // 点击翻页进行切换
 on($("#prev"),"click",function(){
  nextIndex = currentIndex - 1;
  if(nextIndex < 0){
   nextIndex = length;
  }
  move();
 })
 on($("#next"),"click",function(){
  move();
 })
 </script>
</body>
</html>

更多关于轮播图效果的专题,请点击下方链接查看学习

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

Javascript 相关文章推荐
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
JS简单设置下拉选择框默认值的方法
Aug 20 Javascript
如何使用jquery实现文字上下滚动效果
Oct 12 Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 Javascript
Vue 莹石摄像头直播视频实例代码
Aug 31 Javascript
elementUI select组件使用及注意事项详解
May 29 Javascript
layui 上传图片 返回图片地址的方法
Sep 26 Javascript
详解一些适用于Node.js的命名约定
Dec 08 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 Javascript
JS事件循环机制event loop宏任务微任务原理解析
Aug 04 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
Nov 06 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
Jul 31 #Javascript
jquery轮播图插件使用方法详解
Jul 31 #jQuery
在Uni中使用Vue的EventBus总线机制操作
Jul 31 #Javascript
jQuery带控制按钮轮播图插件
Jul 31 #jQuery
Vue之封装公用变量以及实现方式
Jul 31 #Javascript
three.js 将图片马赛克化的示例代码
Jul 31 #Javascript
three.js 如何制作魔方
Jul 31 #Javascript
You might like
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
详解php命令注入攻击
2019/04/06 PHP
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
Python生成器以及应用实例解析
2018/02/08 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
python爬取基于m3u8协议的ts文件并合并
2019/04/26 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
Python多进程编程常用方法解析
2020/03/26 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
现金会计岗位职责
2013/12/05 职场文书
临时租车协议范本
2014/09/23 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
校本培训个人总结
2015/02/28 职场文书
单位工资证明范本
2015/06/12 职场文书
创业计划书之面包店
2019/09/17 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python