js判断定时器是否启动_原生js如何做出轮播图的效果
<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如何做出轮播图的效果相关推荐
- 24小时轮播怎么实现的_四种方式实现轮播图
不论是app,还是网站,基本上都会出现轮播图,今天和大家分享几种不同工具实现轮播图的几种方式. 轮播图的基本样式和功能就不需要解释了,相信能根据题目选择看文章的话都知道啥是轮播图,如果哪位读者老爷真的 ...
- 原生JS仿造华为商城案例-实现了简单页面-两种轮播图思路的实现-动态展示数据
文章目录 功能简介 项目准备 项目说明 方案一:源代码 CSS样式 HTML结构 JS逻辑 方案二:源代码 CSS样式 HTML结构 JS逻辑 功能简介 页面展示 该项目功能实现: 无限滚动轮播图 j ...
- JS原生实现简单的轮播图(完整代码,一看就懂)
实现完后的效果图: 实现思路: 先实现能左右箭头点击能实现图片的更换,也就是五张图片先隐藏然后看一下当前要现在第几张就让它显示,其他四张隐藏. 需要注意的地方是当前图片是第一张或第五张的时候我们要加判 ...
- html原生轮播图的实现,使用原生js实现点击切换图片(轮播图)效果
要实现的功能大致为: 点击两边的切换按钮,可以按顺序切换不同的图片 具体操作如下: 一.布局html 1.添加一个div容器 2.添加一个轮播图img标签 3.添加两个按钮img标签 二.css样式设 ...
- HTML5+CSS3+JS小实例:仿制网易云音乐网站的轮播图
实例:仿制网易云音乐网站的轮播图 技术栈:HTML+CSS+JS 字体图标库:font-awesome 效果: 源码: <!DOCTYPE html> <html><he ...
- html轮播图循环效果,TremulaJS-跨设备多功能的无限循环js轮播图插件
TremulaJS是一款非常酷的跨设备多功能的无限循环js轮播图插件.TremulaJS是一个客户端javascript UI组件,它基于贝兹曲线和物理动量效应制作各种效果,可以制作无限循环的图片流, ...
- 原生javascript之实战 轮播图
成品效果如下图所示: 因为博客园限制图片上传大小被我删了一些帧数,所以图片看起来会有一点卡,现实运行是不会的 搭建HTML和CSS结构 HTML代码如下: 1 <div class=" ...
- 小程序轮播图_微信小程序层叠轮播图
效果展示 Demo代码 wxml <view class="selection_cards" bindtouchstart="touchstart" bi ...
- 微信小程序swiper图片尺寸_微信小程序 swiper 轮播图 高度自适应
微信小程序 swiper 轮播图 高度自适应 发布时间:2018-07-20 15:34, 浏览次数:588 , 标签: swiper 小程序中使用swiper 组件 ,实现轮播图高度自适应效果. 先 ...
最新文章
- TeXworks使用教程指南
- RadioGroup和RadioButton(单选框)
- Web前端优化需要注意的点
- git clone 获取指定分支的指定commit版本
- Could not connect ot Redis No route to host问题解决
- MySQL数据类型和Java数据类型对应关系表
- webpack-dev-server启动后,localhost:8080返回index.html的原理
- [CQOI2018] 交错序列(矩阵加速优化dp)
- Burp破解安装(1.7和2.0)
- order by 中 使用decode
- SpringBoot之SpringMVC自动配置
- 雷军:小米生死靠技术!
- SpringBoot系列六:SpringBoot整合Tomcat
- Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息
- JMETER录制脚本,脚本增强,参数化,作用域和执行顺序
- OtterCTF 内存取证(1-5)
- 鬼压床到底是怎么回事?
- Android课程设计,生活记事本
- kiv8测量方法_室内门标准及测量方法
- (.Net常识)(int),Int32.Parse,Conver.ToInt32三者在什么情况下使用以及其区别。
热门文章
- 编码 面试_在学习编码面试时如何取得进步
- 论坛分页频繁更新帖子缓存_如何实现频繁更改内容的“可缓存”分页
- 数组复制速度 System.arraycopy()clone() Arrays.copyof() for()探究
- 消息传递的图神经网络
- Termux配置ssh连接
- 大型企业都在用的Python反爬虫手段,破了它!
- 如何在网上获取国际、国内的学术会议消息
- exists 实现查看表Activity中FmyId=1(具体数字在程序中动态给定)的好友发起的活动
- 漫步微积分七——连续函数
- 深度学习-tensorflow1.x:平均值(reduce_mean)与求和(reduce_sum) 小白理解 代码实现 Tensorflow1.x 和 Numpy