原生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 相关文章推荐
Javascript中Eval函数的使用
Mar 23 Javascript
JQ获取动态加载的图片大小的正确方法分享
Nov 08 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
Dec 30 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
javascript中sort() 方法使用详解
Aug 30 Javascript
jquery遍历table的tr获取td的值实现方法
May 19 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Dec 15 Javascript
基于jQuery制作小图标上下滑动特效
Jan 18 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
Mar 13 Javascript
vue计算属性无法监听到数组内部变化的解决方案
Nov 06 Javascript
js中的面向对象之对象常见创建方法详解
Dec 16 Javascript
js实现简单点赞操作
Mar 17 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中批量替换文件名的实现代码
2011/07/20 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
js计数器代码
2006/11/04 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
nodejs基础知识
2017/02/03 NodeJs
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
初学Python函数的笔记整理
2015/04/07 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Python 多线程Threading初学教程
2017/08/22 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
Django 外键的使用方法详解
2019/07/19 Python
中科软测试工程师面试题
2012/06/16 面试题
为什么需要版本控制
2016/10/28 面试题
主治医师岗位职责
2013/12/10 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
Python答题卡识别并给出分数的实现代码
2021/06/22 Python