原生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 相关文章推荐
AJAX使用了UpdatePanel后无法使用alert弹出脚本
Apr 02 Javascript
jquery简单实现鼠标经过导航条改变背景图
Dec 17 Javascript
angularjs指令中的compile与link函数详解
Dec 06 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
JS实现图片高亮展示效果实例
Nov 24 Javascript
实例详解jQuery表单验证插件validate
Jan 18 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 jQuery
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
使用vuex缓存数据并优化自己的vuex-cache
May 30 Javascript
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
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实现数组array转换成xml的方法
2016/07/19 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
python连接sql server乱码的解决方法
2013/01/28 Python
Python中装饰器的一个妙用
2015/02/08 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python运行DLL文件的方法
2020/01/17 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
C#面试题问题集
2016/04/02 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
代理人委托书
2014/09/16 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
监察建议书
2015/02/04 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript