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: ...
随机推荐
- SQL-W3School-高级:SQL FOREIGN KEY 约束
ylbtech-SQL-W3School-高级:SQL FOREIGN KEY 约束 1.返回顶部 1. SQL FOREIGN KEY 约束 一个表中的 FOREIGN KEY 指向另一个表中的 P ...
- SQL-W3School-高级:SQL UNIQUE 约束
ylbtech-SQL-W3School-高级:SQL UNIQUE 约束 1.返回顶部 1. SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIM ...
- android在点击EditText的时候始终不弹出软件键盘
场景描述:正常情况下,当点击EditText时,软键盘会弹出来.现在的要求是当点击EditText时,弹日期选择对话框,选择的结果显示在EditText上.若不处理,当点击EditText时,软键盘和 ...
- centos 7 gitlab安装服务器
详情见 https://blog.csdn.net/duyusean/article/details/80011540
- linux安装maven及配置环境变量 配图
Maven 3.5.0 maven安装和环境变量的配置 1 下载 maven 链接:http://pan.baidu.com/s/1qXXjXfe 密码:r92r 2 解压安装包 tar zvxf a ...
- postman 发送json 格式数据
hearder 设置 body 设置 { ", "primary_content": "{\"SN\":129,\"MPBH\&q ...
- STL标准模板库之set
目录 一.关联式容器 二.什么是set? 特点 优缺点和适用场景: 三.定义及初始化 四.基本操作 1)容量函数 2)修改函数 3)迭代器 4)其他函数 五.与序列容器的不同点 一.关联式容器 关联式 ...
- linux中sleep详解实例
在linux编程中,有时候会用到定时功能,常见的是用sleep(time)函数来睡眠time秒:但是这个函数是可以被中断的,也就是说当进程在睡眠的过程中,如果被中断,那么当中断结束回来再执行该进程的时 ...
- 【leetcode算法-简单】1.两数之和
[题目描述] 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...
- 24.Azkaban调度脚本的编写
启动azkaban 在启动了server和excutor之后,在浏览器打开azkaban,会发现不能打开,日志报这个错误 at sun.security.ssl.InputRecord.handleU ...