<div class="box"><ul><li class="active"><img src="./image/微信图片_20190908230534.jpg" altb=""></li><li><img src="./image/微信图片_20190908230541.jpg" alt=""></li><li><img src="./image/微信图片_20190908230545.jpg" alt=""></li><li><img src="./image/微信图片_20190908230549.jpg" alt=""></li><li><img src="./image/微信图片_20190908230554.jpg" alt=""></li><li><img src="./image/微信图片_20190908230559.jpg" alt=""></li><li><img src="./image/微信图片_20190908230603.jpg" alt=""></li><li><img src="./image/微信图片_20190908230608.jpg" alt=""></li><li><img src="./image/微信图片_20190908230611.jpg" alt=""></li></ul><ol><li class="active">1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li></ol><span id="left"><</span><span id="right">></span></div>

以上代码是我做出的简单的页面部分。但是不重要,对,不重要!

重要的是我们认真学习的js部分,这才是我们的重点!

虽然在我们学习的后期,会直接使用轮播图插件,快捷方便!

但是!

要是连最基础的js如何实现都不知道,那我只能说,你也就是能当个初级前端工程师,

想升P等级,就是要熟悉并了解最底层代码如何实现,只有这样,才能提高自己!

才能提高P/T等级!才能挣到钱!

闲话不扯了,说多无用,让我们直接去了解最底层的世界吧~~~

var ul_li = document.querySelectorAll('ul li');
var ol_li = document.querySelectorAll('ol li');
var left = document.getElementById('left');
var right = document.getElementById('right');
var box = document.getElementsByClassName('box')[0];
var timer = null;     //设置一个定时器,为空指针
var  index = 0;       //设置index为下标,并先赋予其值

此部分为js的最开始部分,我们肯定要先去获取你想要东西,才能去动手去实现,对不对?!

声明变量并赋予你想要的属性,语法这是就需要去熟记了,你想得到什么,并用它来做什么,没有技巧了,注意,括号内的是否加点,是否选中的问题。

在此问题中,肯定有重复选中的问题,所以,我们需要先去封装一个排它的函数,以便我们之后去调用。

//封装排它的函数
function pta(a){for(var i = 0; i<ul_li.length;i++){                 //排它循环ul_li[i].classList.remove('active');ol_li[i].classList.remove('active');}ul_li[index].classList.add('active');ol_li[index].classList.add('active');
}

接下来,在考虑,我们要将它动起来对不对,但是,怎么让它自己跑起来呢?这就是我们的核心之一(提示:这个时候,就要去咱们上去封装的排它函数了)

function auto(){index++;    //下标自增if(index >= ul_li.length){    //下标自增也需要上限啊,也不可能无限去自增。这时候就加个判断,让它大于等于li长度时,让它归零,以此循环index = 0;}pta(index);     //在循环中排它
}

还没完!还没完!让自动去轮播,就需要用到我们的定时器函数了,只有这样,它像火车一样嘟嘟嘟跑起来啊

//自动轮播,顺序为右
timer = setInterval(function(){auto();
},1000)

自动轮播部分完成,此时我们也需要根据图的顺序,去点击让它换到下一个或者上一个,该加点击事件了!

//右点击轮播
right.onclick = function(){auto(index);
}
//左点击轮播
left.onclick = function(){index--;if(index < 0){               //因为我们的习惯都是默认向右点击,如果我们需要向左点击让它往上一个图走,需要改变它的判断了index = ul_li.length - 1;}pta(index);
}

点击和自动都能跑起来了,我们人是高等动物,我们想让它跑就跑,想让它停就停。停止和开启,都要鼠标去控制的吧,我们就去加个鼠标划入划出的事件就好了

//鼠标移入,轮播停止
box.onmouseenter = function(){clearInterval(timer);     //清除定时器timer = null;          //让定时器重新为空
}
//鼠标移出,轮播重新开启
box.onmouseleave = function(){timer = setInterval(function(){auto();},1000);
}

最后,再加人为去点击,我想看哪个图就能看到哪个,并让自己划出时,轮播为接着自己点击这个图下一个图

//点击数字小圆圈,进行识别哪个图
for(var j = 0; j <ol_li.length;j++){ol_li[j].idx = j;ol_li[j].onclick = function(){index = this.idx;  //坐标赋值为this.idx(此时坐标)pta(this.idx);      //排他函数,传入实参this.idx    }
}

,大功告成~

超级超级建议版的轮播图完成了!终于可以开心的玩耍了!

js判断定时器是否启动_原生js如何做出轮播图的效果相关推荐

  1. 24小时轮播怎么实现的_四种方式实现轮播图

    不论是app,还是网站,基本上都会出现轮播图,今天和大家分享几种不同工具实现轮播图的几种方式. 轮播图的基本样式和功能就不需要解释了,相信能根据题目选择看文章的话都知道啥是轮播图,如果哪位读者老爷真的 ...

  2. 原生JS仿造华为商城案例-实现了简单页面-两种轮播图思路的实现-动态展示数据

    文章目录 功能简介 项目准备 项目说明 方案一:源代码 CSS样式 HTML结构 JS逻辑 方案二:源代码 CSS样式 HTML结构 JS逻辑 功能简介 页面展示 该项目功能实现: 无限滚动轮播图 j ...

  3. JS原生实现简单的轮播图(完整代码,一看就懂)

    实现完后的效果图: 实现思路: 先实现能左右箭头点击能实现图片的更换,也就是五张图片先隐藏然后看一下当前要现在第几张就让它显示,其他四张隐藏. 需要注意的地方是当前图片是第一张或第五张的时候我们要加判 ...

  4. html原生轮播图的实现,使用原生js实现点击切换图片(轮播图)效果

    要实现的功能大致为: 点击两边的切换按钮,可以按顺序切换不同的图片 具体操作如下: 一.布局html 1.添加一个div容器 2.添加一个轮播图img标签 3.添加两个按钮img标签 二.css样式设 ...

  5. HTML5+CSS3+JS小实例:仿制网易云音乐网站的轮播图

    实例:仿制网易云音乐网站的轮播图 技术栈:HTML+CSS+JS 字体图标库:font-awesome 效果: 源码: <!DOCTYPE html> <html><he ...

  6. html轮播图循环效果,TremulaJS-跨设备多功能的无限循环js轮播图插件

    TremulaJS是一款非常酷的跨设备多功能的无限循环js轮播图插件.TremulaJS是一个客户端javascript UI组件,它基于贝兹曲线和物理动量效应制作各种效果,可以制作无限循环的图片流, ...

  7. 原生javascript之实战 轮播图

    成品效果如下图所示: 因为博客园限制图片上传大小被我删了一些帧数,所以图片看起来会有一点卡,现实运行是不会的 搭建HTML和CSS结构 HTML代码如下: 1 <div class=" ...

  8. 小程序轮播图_微信小程序层叠轮播图

    效果展示 Demo代码 wxml <view class="selection_cards" bindtouchstart="touchstart" bi ...

  9. 微信小程序swiper图片尺寸_微信小程序 swiper 轮播图 高度自适应

    微信小程序 swiper 轮播图 高度自适应 发布时间:2018-07-20 15:34, 浏览次数:588 , 标签: swiper 小程序中使用swiper 组件 ,实现轮播图高度自适应效果. 先 ...

最新文章

  1. TeXworks使用教程指南
  2. RadioGroup和RadioButton(单选框)
  3. Web前端优化需要注意的点
  4. git clone 获取指定分支的指定commit版本
  5. Could not connect ot Redis No route to host问题解决
  6. MySQL数据类型和Java数据类型对应关系表
  7. webpack-dev-server启动后,localhost:8080返回index.html的原理
  8. [CQOI2018] 交错序列(矩阵加速优化dp)
  9. Burp破解安装(1.7和2.0)
  10. order by 中 使用decode
  11. SpringBoot之SpringMVC自动配置
  12. 雷军:小米生死靠技术!
  13. SpringBoot系列六:SpringBoot整合Tomcat
  14. Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息
  15. JMETER录制脚本,脚本增强,参数化,作用域和执行顺序
  16. OtterCTF 内存取证(1-5)
  17. 鬼压床到底是怎么回事?
  18. Android课程设计,生活记事本
  19. kiv8测量方法_室内门标准及测量方法
  20. (.Net常识)(int),Int32.Parse,Conver.ToInt32三者在什么情况下使用以及其区别。

热门文章

  1. 编码 面试_在学习编码面试时如何取得进步
  2. 论坛分页频繁更新帖子缓存_如何实现频繁更改内容的“可缓存”分页
  3. 数组复制速度 System.arraycopy()clone() Arrays.copyof() for()探究
  4. 消息传递的图神经网络
  5. Termux配置ssh连接
  6. 大型企业都在用的Python反爬虫手段,破了它!
  7. 如何在网上获取国际、国内的学术会议消息
  8. exists 实现查看表Activity中FmyId=1(具体数字在程序中动态给定)的好友发起的活动
  9. 漫步微积分七——连续函数
  10. 深度学习-tensorflow1.x:平均值(reduce_mean)与求和(reduce_sum) 小白理解 代码实现 Tensorflow1.x 和 Numpy