带进度条的轮播图--原生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. CentOS7下安装php-soap扩展

    一.首先更新yum yum update 二.查看php-soap相关的安装包,查看php版本,安装对应php版本的php-soap版本 php -v yum search php | grep -i ...

  2. Java同步数据结构之PriorityBlockingQueue

    前言 接下来继续BlockingQueue的另一个实现,优先级阻塞队列PriorityBlockingQueue.PriorityBlockingQueue是一个无限容量的阻塞队列,由于容量是无限的所 ...

  3. Swift 析构过程

    在一个类的实例被释放之前,析构函数被立即调用.用关键字deinit来标示析构函数,类似于初始化函数用init来标示.析构函数只适用于类类型. 析构过程原理 Swift 会自动释放不再需要的实例以释放资 ...

  4. Swift 基本语法

    如果创建的是 OS X playground 需要引入 Cocoa : import Cocoa /* 我的第一个 Swift 程序 */ var myString = "Hello, Wo ...

  5. kotlin之操作符重载

    一元操作符 表达式 对应的函数 +a a.unaryPlus() -a a.unaryMinus() !a a.not() a++ a.inc() a-- a.dec() fun main(arg: ...

  6. seaweedfs文件存储服务器搭建

    官方网站: https://github.com/chrislusf/seaweedfs/wiki/Getting-Started 概述 seaweedfs是一个非常优秀的由 golang 开发的分布 ...

  7. python之Anaconda python3.7安装

    1.下载 https://www.anaconda.com/distribution/ #你会发现,使用windows下载十分慢,既然这样,为何不尝试centos(linux)安装呢?本人使用cent ...

  8. 使用iptables为docker容器动态添加端口映射

    1.将当前iptables的配置写入保存到/etc/sysconfig/iptables 2.保存 /etc/init.d/iptables sava 3.修改iptables配置(vi /etc/s ...

  9. 电力项目十一--js添加浮动框

    1.添加浮动窗口样式 <!-- 浮动窗口样式css begin --> <style type="text/css"> #msg_win{border:1p ...

  10. ivy使用Maven阿里云镜像的问题

    ivy默认使用的Maven仓库下载速度有点慢,所以想改成国内的,添加如下resolver: <ibiblio name="working-chinese-mirror" ro ...