原生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 相关文章推荐
将json对象转换为字符串的方法
Feb 20 Javascript
node.js中的fs.readdirSync方法使用说明
Dec 17 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
Mar 11 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
JQuery插件Marquee.js实现无缝滚动效果
Apr 26 Javascript
原生js实现焦点轮播图效果
Jan 12 Javascript
backbone简介_动力节点Java学院整理
Jul 14 Javascript
JS库中的Particles.js在vue上的运用案例分析
Sep 13 Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
Jul 24 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
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函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
python常见的格式化输出小结
2016/12/15 Python
python更改已存在excel文件的方法
2018/05/03 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
Python实现FM算法解析
2019/06/18 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
Noon埃及:埃及在线购物
2019/11/26 全球购物
拓展培训心得体会
2014/01/04 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
优秀大学生自荐信
2015/03/26 职场文书
2015年双拥工作总结
2015/04/08 职场文书
教师听课学习心得体会
2016/01/15 职场文书
2022微信温控新功能上线
2022/05/09 数码科技