原生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 相关文章推荐
jQuery学习5 jQuery事件模型
Feb 07 Javascript
ExtJs事件机制基本代码模型和流程解析
Oct 24 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
Jun 22 Javascript
JS 清除字符串数组中,重复元素的实现方法
May 24 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
Apr 13 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 Javascript
vue中使用refs定位dom出现undefined的解决方法
Dec 21 Javascript
基于JavaScript实现简单的音频播放功能
Jan 07 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
Jan 12 Javascript
详解项目升级到vue-cli3的正确姿势
Jan 28 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
Puppet的一些技巧
2018/09/17 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
python中定义结构体的方法
2013/03/04 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
2014幼儿教师个人工作总结
2014/12/03 职场文书
庐山导游词
2015/02/03 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python