Js-带进度条的轮播图
带进度条的轮播图--原生JS实现
实现了图片自动轮播,左右按钮实现图片左右转换,下方原点或者缩小图点击选择其中的某一张图片,然后有红条实现图片的进度。
<div class="content">
<div class="box1">
<ul class="box1_1">
<li><img src="./img/1.jpeg" alt="" style="width: 640px"></li>
<li><img src="./img/2.jpeg" alt="" style="width: 640px"></li>
<li><img src="./img/3.jpeg" alt="" style="width: 640px"></li>
<li><img src="./img/4.jpeg" alt="" style="width: 640px"></li>
<li><img src="./img/5.jpeg" alt="" style="width: 640px"></li>
</ul>
<div class="box_left"><</div>
<div class="box_right">></div>
</div>
<p class="p1"></p>
<div class="box2">
<img src="./img/1.jpeg" alt="" style="width: 16%" class="img2 img_border">
<img src="./img/2.jpeg" alt="" style="width: 16%" class="img2">
<img src="./img/3.jpeg" alt="" style="width: 16%" class="img2">
<img src="./img/4.jpeg" alt="" style="width: 16%" class="img2">
<img src="./img/5.jpeg" alt="" style="width: 16%" class="img2">
</div>
</div>
<style>
* {
margin:;
padding:;
} .content {
width: 640px;
height: auto;
margin: 50px auto;
} .box1 {
width: 640px;
height: 480px;
position: relative;
overflow: hidden;
} .box1_1 {
width: 3200px;
height: 480px;
list-style: none;
position: absolute;
top:;
left:;
transition: 0.7s;
} li {
float: left;
} .box2 {
width: 640px;
display: flex;
justify-content: space-around;
margin-top: 20px;
clear: both;
} .box_left {
width: 50px;
height: 50px;
line-height: 50px;
font-size: 30px;
color: white;
position: absolute;
top: 200px;
left: 20px;
background-color: rgba(182, 178, 178, 0.5);
border-radius: 9px;
text-align: center;
display: none;
} .box_right {
width: 50px;
height: 50px;
line-height: 50px;
font-size: 30px;
color: white;
position: absolute;
top: 200px;
right: 20px;
background-color: rgba(182, 178, 178, 0.5);
border-radius: 9px;
text-align: center;
display: none; } .p1 {
width: 0%;
height: 5px;
background-color: red;
} .img_border {
border: 10px solid gray;
} .box_left,
.box_right{
cursor: pointer;
}
</style>
<script>
let ul = document.getElementsByClassName("box1_1")[0];
let img2 = document.getElementsByClassName("img2");
let box1 = document.getElementsByClassName("box1")[0];
let content = document.getElementsByClassName("content")[0];
let box_left = document.getElementsByClassName("box_left")[0];
let box_right = document.getElementsByClassName("box_right")[0];
let p1 = document.getElementsByClassName("p1")[0]; let num = 0, stop,num1=0,stop1; let p_add = function(){
p1.style.width = num1+"%";
num1++;
if(num1>100){
p1.style.width = 0+"%";
num1=0;
clearInterval(stop1);
}
} let move = function () {
stop1 = setInterval(p_add,19);
num++;
for (let i = 0; i < img2.length; i++) {
if (i == num) {
img2[i].classList.add("img_border");
break;
} else {
for (let i = 0; i < img2.length; i++) {
img2[i].classList.remove("img_border");
}
}
}
ul.style.left = -num * 640 + "px";
if (num == 5) {
num = 0;
ul.style.left = -num * 640 + "px";
img2[num].classList.add("img_border");
}
} stop = setInterval(move, 2000); content.addEventListener("mouseover", function () {
clearInterval(stop1);
p1.style.width = 0+"%";
clearInterval(stop);
box_left.style.display = "block";
box_right.style.display = "block";
}, false); content.addEventListener("mouseout", function () {
stop = setInterval(move, 2000);
box_left.style.display = "none";
box_right.style.display = "none";
}, false); box_left.addEventListener('click', function () {
num--;
if(num==-1){
num=4;
}
for(let i=0;i<img2.length;i++){
img2[i].classList.remove("img_border");
}
img2[num].classList.add("img_border");
ul.style.left = -num*640+"px";
}, false); box_right.addEventListener('click', function () {
num++;
if(num==5){
num=0;
}
for(let i=0;i<img2.length;i++){
img2[i].classList.remove("img_border");
}
img2[num].classList.add("img_border");
ul.style.left = -num*640+"px";
}, false); for(let i=0;i<img2.length;i++){
img2[i].index = i;
img2[i].onclick = function(){
num = this.index;
for(let j=0;j<img2.length;j++){
img2[j].classList.remove("img_border");
}
img2[num].classList.add("img_border");
ul.style.left = -num*640+"px";
}
} window.onblur = function(){
clearInterval(stop1);
p1.style.width = 0+"%";
num1=0;
clearInterval(stop);
} window.onfocus = function(){
stop = setInterval(move, 2000);
} </script>
Js-带进度条的轮播图的更多相关文章
- js 实现淘宝无缝轮播图效果,可更改配置参数 带完整版解析代码[slider.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写淘宝无缝轮播图效果 需求分析: ...
- JS封装动画框架,网易轮播图,旋转轮播图
JS封装动画框架,网易轮播图,旋转轮播图 1. JS封装运动框架 // 多个属性运动框架 添加回调函数 function animate(obj,json,fn) { clearInterval(ob ...
- 带无缝滚动的轮播图(含JS运动框架)
今天学习了一下轮播图的写作,想到前一阵学过的无缝滚动得思想,所以就把轮播与滚动结合了一下.不过我的代码的神逻辑我自己都不敢恭维,在没网没参照的情况下,只能硬着头皮往下写,希望跟大家共勉吧. js运动框 ...
- 原生js实现简单移动端轮播图
最近项目不是很忙,自己就用原生js写了一个简单的移动端轮播图的小demo,可实现自动轮播和手势滑动轮播,然后就把它记录到个人博客里.还有很多不足的地方,希望多多指出,以便改进. 1.代码部分 分为四个 ...
- JS应用实例2:轮播图
在学习轮播图之前,要先会切换图片: 找三张图片,命名1.jpg,2.jpg,3.jpg 示例: <!DOCTYPE html> <html> <head> < ...
- 学习笔记: js插件 —— SuperSlide 2 (轮播图插件,PC用)
SuperSlide 2 轮播图插件,较老.但还好用. 适用于PC,是绑定到jquery上的方法: $.slide(); 如果在实际中找不到.slide方法,请检查jquery等.js文件的引入次序 ...
- 原生js实现一个简单的轮播图
想锻炼一下自己的原生js能力可以从写一个轮播图开始,轮播图的运用想必大家都知道吧,好了废话不多说,开始记笔记了,一些需要注意的点,我都在代码中标注了 首先是构造html: <div id=&qu ...
- 基于js的自适应、多样式轮播图插件(兼容IE8+、FF、chrome等主流浏览器)
插件github地址:https://github.com/pomelott/slider-plug_in 使用方式: slider plug-in 左右滑动的自适应.多样式全能插件.多次调用时只需传 ...
- JS原生带小白点轮播图
咱们刚刚说了js原生轮播图,现在给他加上可以随着一起走动的小圆点吧! css代码: *{ margin:0px; padding: 0px; } ul{ width: 2500px; height: ...
随机推荐
- 012-Spring Boot web【一】web项目搭建、请求参数、RestController、使用jsp、freemarker,web容器tomcat和jetty
一.项目搭建 同:http://www.cnblogs.com/bjlhx/p/8324971.html 1)新建maven项目→使用默认配置即可 定义好项目名称等 2)修改jdk版本 <pro ...
- 虚拟化技术实现 — KVM 的 CPU 虚拟化
目录 文章目录 目录 前文列表 x86 体系结构的虚拟化 硬件辅助的 CPU 虚拟化 由 VMX 切换支撑的 CPU 虚拟化技术 KVM 的 CPU 虚拟化实现 vCPU 的调度方式 客户机 CPU ...
- 解析Python编程中的包结构
解析Python编程中的包结构 假设你想设计一个模块集(也就是一个"包")来统一处理声音文件和声音数据.通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能 ...
- 初始Hibernate框架
首先我们需要先创建一个案例 构建一个Student 的实体类 private String name; private Integer age; private Integer id; 在SRC根目录 ...
- Opengl_入门学习分享和记录_03_渲染管线(三)借助顶点数组对象VAO提高绑定属性效率
目前我们已经知道了,如果想要顶点着色器解释理解我们的输入数据,就必须要按照以下繁琐的步骤:第一步:将输入的数据复制一份到缓冲区,供OpenGL使用.而这块新出现的区域由VBO管理和表示.(若有多个输入 ...
- switch/catch
public class SwitchTest { public static void main(String[] args) { String param = null; switch (para ...
- sws office-强大小巧的开源office
sws office是一款由国际软件分享组织于2019年刚刚开发完成的一个开源office,目的是为了响应CR2019的号召,开发一个体积只有2.2MB,占用内存小,运行速度极快的office,它支持 ...
- zabbix案例实例
1 案例1:实现Zabbix报警功能 1.1 问题 沿用第5天Zabbix练习,使用Zabbix实现报警功能,实现以下目标: 监控Linux服务器系统账户 创建Media,设置邮件服务器及收件人邮箱 ...
- c++学习笔记_1
前言:本笔记所对应的课程为中国大学mooc中北京大学的程序设计与算法(三)C++面向对象程序设计,主要供自己复习使用 第一章 从c到c++ 引用 定义引用时一定要将其初始化成某个变量 引用从一而终,引 ...
- 实时监控服务器某个端口状态TCPing
在给客户做运维服务期间,发现了一个奇怪的现象:备份系统(第三方国产)告警日志显示,每天晚上备份服务器的客户端在3点左右离线然后上线,再离线再上线,每晚两次,很是诡异. 联系了厂家技术支持,前后花了两天 ...