超详细的原生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 ...
随机推荐
- 基于端口划分vlan
基于端口划分vlan 拓扑图 PC ip 配置 PC 5:192.168.1.5 PC 6:192.168.1.6 PC 7:192.168.1.7 PC 8: 192.168.1.8 交换机配置 创 ...
- 如何解决在WordPress安装Redis插件时需要输入FTP问题?
用LAMP或者LNMP搭建Worepress的时候,安装主题或者插件时候,往往提示需要输入FTP服务端信息的问题,其实这是一个坑,可以完全避免的 我们只需在wp-config.php文件最后添加以下代 ...
- Wordpress用文件记录访客 IP和访问量
1.记录访问量,显示访客IP [php原码] <?php /*打开文件用于记录访问量,如果文件不存在自动创建*/ $counterFile = "counter.txt"; ...
- 回车与换行的区别:CRLF、CR、LF
引言 以下是 MySQL 8 导出数据的窗口,导出数据时需要选择记录分隔符,这就需要你明白 CRLF.CR 和 LF 分别代表什么,有何区别,否则可能导出数据会出现莫名其米的问题. 名词解释 CR:C ...
- linux进阶之计划任务及压缩归档
本节内容 1. at一次性计划任务(atd) at 时间点 command ctrl+d:保存 -l:查看计划任务 atrm:删除计划任务 atq:查看计划任务 2. crontab周期性计划任务(c ...
- 【转】Spring_IOC学习
原文地址:http://github.thinkingbar.com/spring/ 一.XML文件语法的知识点 对于XML没有提示的话,在Eclipse中搜索XML catalog设置.对于XML文 ...
- /usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:245: running exec setns .....
docker创建容器时报错如下: containerd: start container" error="oci runtime error: container_linux.go ...
- Archlinux+win10双系统扩容Boot/ESP分区
环境 系统:Archlinux + Windowns10 双系统 软件:MiniTool Partition Wizard 免费版 + Diskgenius 免费版 分区:原ESP分区100M 原恢复 ...
- 友盟umeng消息推送直接复制就能用(纯干货)
一. 单播推送(unicast) 1.1 图 1.2 代码 1 /** 2 * 根据设备的deviceToken, 去给指定的设备推送消息 3 * 4 * @param deviceToken 单个d ...
- THINKPHP_(3)_TP6中实现多层关联,第一个表关联第二个表查询出的数据,再关联第三个表
问题: (1)canxunDanwei数据表对应的模型中有一个关联是: public function canxunDanwei() { return $this->belongsTo('\ap ...