带进度条的轮播图--原生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">&lt;</div>
<div class="box_right">&gt;</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-带进度条的轮播图的更多相关文章

  1. js 实现淘宝无缝轮播图效果,可更改配置参数 带完整版解析代码[slider.js]

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS写淘宝无缝轮播图效果 需求分析: ...

  2. JS封装动画框架,网易轮播图,旋转轮播图

    JS封装动画框架,网易轮播图,旋转轮播图 1. JS封装运动框架 // 多个属性运动框架 添加回调函数 function animate(obj,json,fn) { clearInterval(ob ...

  3. 带无缝滚动的轮播图(含JS运动框架)

    今天学习了一下轮播图的写作,想到前一阵学过的无缝滚动得思想,所以就把轮播与滚动结合了一下.不过我的代码的神逻辑我自己都不敢恭维,在没网没参照的情况下,只能硬着头皮往下写,希望跟大家共勉吧. js运动框 ...

  4. 原生js实现简单移动端轮播图

    最近项目不是很忙,自己就用原生js写了一个简单的移动端轮播图的小demo,可实现自动轮播和手势滑动轮播,然后就把它记录到个人博客里.还有很多不足的地方,希望多多指出,以便改进. 1.代码部分 分为四个 ...

  5. JS应用实例2:轮播图

    在学习轮播图之前,要先会切换图片: 找三张图片,命名1.jpg,2.jpg,3.jpg 示例: <!DOCTYPE html> <html> <head> < ...

  6. 学习笔记: js插件 —— SuperSlide 2 (轮播图插件,PC用)

    SuperSlide 2  轮播图插件,较老.但还好用. 适用于PC,是绑定到jquery上的方法: $.slide(); 如果在实际中找不到.slide方法,请检查jquery等.js文件的引入次序 ...

  7. 原生js实现一个简单的轮播图

    想锻炼一下自己的原生js能力可以从写一个轮播图开始,轮播图的运用想必大家都知道吧,好了废话不多说,开始记笔记了,一些需要注意的点,我都在代码中标注了 首先是构造html: <div id=&qu ...

  8. 基于js的自适应、多样式轮播图插件(兼容IE8+、FF、chrome等主流浏览器)

    插件github地址:https://github.com/pomelott/slider-plug_in 使用方式: slider plug-in 左右滑动的自适应.多样式全能插件.多次调用时只需传 ...

  9. JS原生带小白点轮播图

    咱们刚刚说了js原生轮播图,现在给他加上可以随着一起走动的小圆点吧! css代码: *{ margin:0px; padding: 0px; } ul{ width: 2500px; height: ...

随机推荐

  1. LC 985. Sum of Even Numbers After Queries

    We have an array A of integers, and an array queries of queries. For the i-th query val = queries[i] ...

  2. SQL-W3School-基础:SQL UPDATE 语句

    ylbtech-SQL-W3School-基础:SQL UPDATE 语句 1.返回顶部 1. Update 语句 Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 ...

  3. js和微信小程序本地获取东八北京时间

    changeCount(){ // 目标时区,东8区 const targetTimezone = -8; // 当前时区与中时区时差,以min为维度 const dif = new Date().g ...

  4. opencv_traincascade级联训练人脸数据

    正负样本格式:  正样本 灰度化 24*24 2000张  负样本 灰度化 50*50 1000张 训练过程  第一步:dir /b >pos.txt 以及dir /b >neg.txt ...

  5. [Java复习] Spring Boot

    什么是Spring Boot? 传统SSH/SSM框架配置繁琐,有很多重复的模板配置,效率不高. Spring Boot快速创建可独立运行,生产级别的Spring应用程序. 主要是基于Spring家族 ...

  6. OS X以及iOS中与硬件环境相关的预定义宏

    由于现在ARM处理器的飞速发展,从Apple A4到现在的Apple A7,从32位到64位,每一代处理器几乎都增加了不少特性,从而在架构上也有所不同.比如Apple A6引入了ARMv7S架构,增加 ...

  7. C++ STL swap_range

    #include <iostream>#include <vector>#include <deque>#include <algorithm> usi ...

  8. openpose关节图

  9. 简单了解sshd_config配置文件

    OpenSSH(即常说的ssh)的常用配置文件有两个/etc/ssh/ssh_config和sshd_config.,其中ssh_config为客户端配置文件,设置与客户端相关的应用可通过此文件实现: ...

  10. Java工程师学习指南第4部分:Java并发编程指南

    本文整理了微信公众号[Java技术江湖]发表和转载过的Java并发编程相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧吧. [纯干货]Java 并发进阶常见面试题总结 [Java基本功] ...