原生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中实现块作用域的方法
Apr 01 Javascript
JavaScript小技巧 2.5 则
Sep 12 Javascript
js操作textarea 常用方法总结
Dec 03 Javascript
JavaScript将Table导出到Excel实现思路及代码
Mar 13 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
js showModalDialog参数的使用详解
Jan 07 Javascript
解决jquery插件冲突的问题
Jan 23 Javascript
js计算系统当前日期是星期几的方法
Jul 14 Javascript
tab栏切换原理
Mar 22 Javascript
解决layui使用layui-icon出现默认图标的问题
Sep 11 Javascript
vue实现选中效果
Oct 07 Javascript
node.js爬虫框架node-crawler初体验
Oct 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 读取文件内容代码(txt,js等)
2009/12/06 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
JS 仿腾讯发表微博的效果代码
2013/12/25 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
python获取网页状态码示例
2014/03/30 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
Django ORM filter() 的运用详解
2020/05/14 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
客服专员岗位职责范本
2013/11/29 职场文书
运动会入场词100字
2014/02/06 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
搞笑婚前保证书
2015/02/28 职场文书
手写实现JS中的new
2021/11/07 Javascript
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
vue+iview实现手机号分段输入框
2022/03/25 Vue.js