原生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 相关文章推荐
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
Apr 12 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
Oct 15 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
Jul 08 Javascript
javascript实现依次输入input自动定焦
Dec 23 Javascript
js验证身份证号有效性并提示对应信息
Oct 19 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
原生js实现简单的模态框示例
Sep 08 Javascript
JS实现二维数组横纵列转置的方法
Apr 17 Javascript
微信小程序支付PHP代码
Aug 23 Javascript
Node.js API详解之 repl模块用法实例分析
May 25 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 Javascript
Ajax实现页面无刷新留言效果
Mar 24 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
高三生物教学反思
2014/01/25 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
横空出世观后感
2015/06/09 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
详解Java实践之抽象工厂模式
2021/06/18 Java/Android