原生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 相关文章推荐
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
Mar 04 Javascript
用js实现trim()的解决办法
Apr 16 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
jquery验证邮箱格式并显示提交按钮
Nov 07 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
Ionic 2 实现列表滑动删除按钮的方法
Jan 22 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
May 03 Javascript
WebSocket实现简单客服聊天系统
May 12 Javascript
使用vue-aplayer插件时出现的问题的解决
Mar 02 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
原生JavaScript实现拖动校验功能
Sep 29 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中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python 如何批量更新已安装的库
2020/05/26 Python
读书演讲主持词
2014/03/18 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
金融事务专业求职信
2014/04/25 职场文书
计划生育标语
2014/06/23 职场文书
社区两委对照检查材料
2014/08/23 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python