原生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之卸载鼠标事件的代码
May 14 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
May 23 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
Feb 20 Javascript
JavaScript中Function详解
Feb 27 Javascript
浅析Node.js中的内存泄漏问题
Jun 23 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
关于vue-router的beforeEach无限循环的问题解决
Sep 09 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 Javascript
vue 解决computed修改data数据的问题
Nov 06 Javascript
JS实现可控制的进度条
Mar 25 Javascript
openlayers实现地图测距测面
Sep 25 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
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
js实现漫天星星效果
2017/01/19 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
使用Python对Excel进行读写操作
2017/03/30 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
Python中的Cookie模块如何使用
2020/06/04 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
旅游管理专业个人求职信范文
2013/12/24 职场文书
社会实践活动报告
2015/02/05 职场文书
会计岗位职责范本
2015/04/02 职场文书
检讨书格式
2015/05/07 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python