超详细的原生JavaScript轮播图(幻灯片)的制作
本次轮播图的制作主要分为3个部分,分别是:设置定时器自动轮播;点击左右切换按钮轮播;下方点击按钮轮播。具体实现步骤如下:
(效果图)
html部分代码如下:
<div class="slidebox">
<ul class="ul1" id="ul1">
<li><img src="img/solid.png" width="100%" height="500px">
<p class="slide-p1">走进酒文化 品味历史悠酒</p>
</li>
<li><img src="img/jiuwh.jpg" width="100%" height="500px">
<p class="slide-p2">
<p class="slide-p21">酒<br>之<br>历<br>史</p>
<p class="slide-p22">酒<br>之<br>常<br>识</p>
<p class="slide-p23">酒<br>之<br>文<br>化</p>
<p class="slide-p24">酒<br>之<br>工<br>艺</p>
<p class="slide-p25">酒<br>之<br>典<br>故</p>
</p>
</li>
<li><img src="img/jiu-1.jpg" width="100%" height="500px">
<p class="slide-p3">酒香飘百年、历久弥香,既得益于得天独厚的酿造环境<br>更缘于人们长期以来对传统工艺的矢志坚守、对品质把控的一丝不苟</p>
</li>
<li><img src="img/jiu2.jpg" width="100%" height="500px">
<p class="slide-p4">
"和",《说文》解为"相应也",《广雅》解为谐也。和乐之本也,强调的是和谐、协调;"发而皆中节谓之和",倾向于平衡、稳健。中华文明历来强调天人合一、尊重自然,"万物各得其和以生,各得其养以成"。
</p>
</li>
</ul>
<div class="left-botton indexs" id="left-botton">
<
</div>
<div class="right-botton indexs" id="right-botton">
>
</div>
<ul class="ul2 indexs" id="ul2">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
css部分代码如下:
.slidebox {
width: 100%;
height: 500px;
position: relative;
}
.slidebox ul {
margin: 0;
padding: 0;
list-style: none;
}
.ul1 {
width: 100%;
height: 100%;
}
.ul1>li {
position: absolute;
top: 0;
left: 0;
}
.left-botton {
margin-left: 50px;
width: 80px;
height: 80px;
background: whitesmoke;
text-align: center;
color: skyblue;
line-height: 70px;
position: absolute;
font-size: 50px;
top: 195px;
left: 0;
border-radius: 100%;
opacity: 0;
}
.slidebox:hover .left-botton {
opacity: 0.8;
transition: 0.5s;
}
.right-botton {
margin-right: 50px;
width: 80px;
height: 80px;
background: whitesmoke;
opacity: 0;
text-align: center;
color: skyblue;
line-height: 70px;
position: absolute;
font-size: 50px;
top: 195px;
right: 0;
border-radius: 100%;
}
.slidebox:hover .right-botton {
opacity: 0.8;
transition: 0.5s;
}
.left-botton:hover {
cursor: pointer;
color: whitesmoke;
opacity: 1;
background: skyblue;
}
.right-botton:hover {
cursor: pointer;
color: whitesmoke;
opacity: 1;
background: skyblue;
}
.ul2 {
position: absolute;
bottom: 25px;
right: 560px;
}
.ul2>li {
width: 60px;
height: 10px;
background: white;
line-height: 20px;
float: left;
border-radius: 3px;
margin-right: 30px;
}
.ul2>li:hover {
background: orangered;
cursor: pointer;
color: white;
}
.ul2>li:nth-child(1) {
background: orangered;
color: white;
}
.ul1>li:nth-child(1) {
z-index: 100;
}
.indexs {
z-index: 200;
}
JS部分代码如下:
var imgs = document.getElementById("ul1").children; //找到需要操作的所有图片
var botton = document.getElementById("ul2").children; //找到需要操作的所有下方点击按钮
var leftbotton = document.getElementById("left-botton"); //找到需要操作的左切换按钮
var rightbotton = document.getElementById("right-botton"); //找到需要操作的右切换按钮
var index = 0; //标记当前展示图片的索引
var dingshiqi; //定义定时器
chongqi(); //调用重启定时器
//绑定定时器自动切换事件
function chongqi() {
dingshiqi = setInterval(function() {
index++; //跳转到下一张图片
if (index == imgs.length) {
index = 0;
} //使图片无限循环播放
for (var i = 0; i < imgs.length; i++) {
imgs[i].style.cssText = "z-index:0;"; //隐藏所有图片
botton[i].style.cssText = "background:white;"; //使所有点击按钮的背景颜色变成白色
}
imgs[index].style.cssText = "z-index:100;"; //显示当前图片
botton[index].style.cssText = "background:orangered;"; //使当前指定点击按钮的背景颜色变成红色
}, 4000); //定时器每隔4秒自动跳转到下一张图片
}
//绑定左切换按钮的点击事件
leftbotton.onclick = function() {
clearInterval(dingshiqi); //关闭定时器
index--; //跳转到上一张图片
if (index < 0) {
index = imgs.length - 1;
}
for (var i = 0; i < imgs.length; i++) {
imgs[i].style.cssText = "z-index:0;"; //隐藏所有图片
botton[i].style.cssText = "background:white;"; //使所有点击按钮的背景颜色变成白色
}
imgs[index].style.cssText = "z-index:100;"; //显示当前图片
botton[index].style.cssText = "background:orangered;"; //使当前指定点击按钮的背景颜色变成红色
chongqi(); //重启定时器
}
//绑定右切换按钮的点击事件
rightbotton.onclick = function() {
clearInterval(dingshiqi); //关闭定时器
index++; //跳转到下一张图片
if (index > imgs.length - 1) {
index = 0;
}
for (var i = 0; i < imgs.length; i++) {
imgs[i].style.cssText = "z-index:0;"; //隐藏所有图片
botton[i].style.cssText = "background:white;"; //使所有点击按钮的背景颜色变成白色
}
imgs[index].style.cssText = "z-index:100;"; //显示当前图片
botton[index].style.cssText = "background:orangered;"; //使当前指定点击按钮的背景颜色变成红色
chongqi(); //重启定时器
}
//绑定所有点击按钮的点击事件
for (let i = 0; i < imgs.length; i++) {
botton[i].onclick = function() {
clearInterval(dingshiqi); //关闭定时器
index = i;
for (let i = 0; i < imgs.length; i++) {
imgs[i].style.cssText = "z-index:0;"; //隐藏所有图片
botton[i].style.cssText = "background:white;"; //使所有点击按钮的背景颜色变成白色
}
imgs[index].style.cssText = "z-index:100;"; //显示当前图片
this.style.cssText = "background:orangered;"; //使当前指定点击按钮的背景颜色变成红色
chongqi(); //重启定时器
}
}
通过以上步骤就可以实现一个完整的轮播图效果了
超详细的原生JavaScript轮播图(幻灯片)的制作的更多相关文章
- javascript原生js轮播图
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js原生实现轮播图效果(面向对象编程)
面向对象编程js原生实现轮播图效果 1.先看效果图 2.需要实现的功能: 自动轮播 点击左右箭头按钮无缝轮播 点击数字按钮切换图片 分析:如何实现无缝轮播? 在一个固定大小的相框里有一个ul标签,其长 ...
- JavaScript轮播图
需求: 鼠标移动到下标页码时,也转换到相对应的图片: 多张图片可以自动轮播: 鼠标移动至图片时,停止自动轮播: 可以手动左右调节: <!DOCTYPE html> <html lan ...
- 原生js轮播图
//用原生js实现了一个简单的轮播图效果 <!DOCTYPE html><html> <head> <meta charset="UTF-8&quo ...
- JavaScript 轮播图
这是我自己做的一个轮播图,大家可以看看 ,我还没进行优化.有改进的地方可以私聊 布局什么的你们自己搞定吧 <div class="slider" id="circl ...
- 用require.js封装原生js轮播图
index.html页面: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- 练习:javascript轮播图效果
javascript轮播自动播放切换滑过停止,上一页/下一页 <!DOCTYPE html> <html lang="en"> <head> & ...
- 手把手原生js轮播图
在团队带人,突然被人问到轮播图如何实现,进入前端领域有一年多了,但很久没自己写过,一直是用大牛写的插件,今天就写个简单的适合入门者学习的小教程.当然,轮播图的实现原理与设计模式有很多种,我这里讲的是用 ...
- js原生的轮播图
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
随机推荐
- property - 必应词典 美['prɑpərti]英['prɒpə(r)ti] n.属性;财产;财产权;【戏】道具
英语 (已检测) 自动检测 阿拉伯语 自动检测 爱尔兰语 自动检测 爱沙尼亚语 自动检测 保加利亚语 自动检测 冰岛语 自动检测 波兰语 自动检测 波斯尼亚语(拉丁语) 自动检测 波斯语 自动检测 丹 ...
- python 匹配中文字符
参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html http://topic.csdn. ...
- Kali Linux 2021.2 发布 (Kaboxer, Kali-Tweaks, Bleeding-Edge & Privileged Ports)
Kali Linux 简介 Kali Linux 是基于 Debian 的 Linux 发行版,旨在进行高级渗透测试和安全审核.Kali Linux 包含数百种工具,可用于各种信息安全任务,例如渗透测 ...
- p4 学习笔记
新版的p4编译器编译p4-14 p4c test.p4 -o meter --std p4-14 #p4-14和p4-16存在较大差异,参考p4代码时需注意 p4语言特性 无符号数bit类型的操作:此 ...
- Docker学习(11) Dockerfile指令
Dockerfile指令 指令格式 FROM MAINTAINER RUN EXPOSE CMD ENTRYPOINT ADD COPY VOLUME WORKDIR ENV USER ONBUILD ...
- THINKPHP_(5)_THINKPHP6接收ajax下拉菜单提交的数据,存在的bug
反思: 国产总是不尽人意,但是要支持国产. ThinkPHP的6接收ajax的post数据,存在一个bug.即ajax传递的json数据,在thinkphp后端解析出来后,并非直接的json格式. 描 ...
- cmodel模拟器开发
cmodel模拟器开发 对于一个公司来说,产品的设计周期就是生命线,一般来说都会在设计功能级仿真的c-model后直接转向RTL设计. 在目前的技术下,做cycle-by-cycle的设计和直接RTL ...
- 怎样训练YOLOv3
怎样训练YOLOv3 Training YOLOv3 : Deep Learning based Custom Object Detector 本文将在一些公开的雪人图片和视频上分享训练过程.有助于训 ...
- nvJPEG Codec库
nvJPEG Codec库 nvJPEG库是高性能的GPU加速库,用于解码,编码和转码JPEG格式的图像.nvJPEG2000库用于解码JPEG 2000格式的图像.与单CPU解码相比,依赖nvJPE ...
- JavaScript 中精度问题以及解决方案
JavaScript 中的数字按照 IEEE 754 的标准,使用 64 位双精度浮点型来表示.其中符号位 S,指数位 E,尾数位M分别占了 1,11,52 位,并且在 ES5 规范 中指出了指数位E ...