JS 幻灯片代码(含自动播放)

JS 幻灯片代码(含自动播放)前端

大家好,又见面了,我是你们的朋友全栈君。

实现幻灯片自动播放(没有上一张下一张功能)

HTML代码(把图片改一下就行)

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
    <link rel="stylesheet" type="text/css" href="1.css">
</head>
<body>
	<div class="slideshow-container">
		<div class="mySlides fade">
			<div class="numbertext">1 / 3</div>
			<img src="../images/img1.jpg" style="width:100%">
			<div class="text">文本 1</div>
		</div>

		<div class="mySlides fade">
			<div class="numbertext">2 / 3</div>
			<img src="../images/img2.jpg" style="width:100%">
			<div class="text">文本 2</div>
		</div>

		<div class="mySlides fade">
			<div class="numbertext">3 / 3</div>
			<img src="../images/img3.jpg" style="width:100%">
			<div class="text">文本 3</div>
		</div>

	</div>
	<br>
	<div style="text-align:center">
		<span class="dot"></span>
		<span class="dot"></span>
		<span class="dot"></span>
	</div>
    <script src="1.js"></script>
</body>
</html>

CSS代码

* {
    box-sizing: border-box;
}

body {
    font-family: Verdana, sans-serif;
}

.mySlides {
    display: none;
}

/* 幻灯片容器 */
.slideshow-container {
    max-width: 1000px;  /* 设置最大宽度 */
    position: relative;
    margin: auto;
}

/* 标题文本 */
.text {
    color: #f2f2f2;
    font-size: 15px;
    padding: 8px 12px;
    position: absolute;
    bottom: 8px;
    width: 100%;
    text-align: center;
}

/* 数字文本 (1/3 等) */
.numbertext {
    color: #f2f2f2;
    font-size: 12px;
    padding: 8px 12px;
    position: absolute;
    top: 0px;
}

/* 标记符号 */
.dot {
    cursor: pointer;
    height: 13px;
    width: 13px;
    margin: 0 2px;
    background-color: #bbb;
    border-radius: 50%;
    display: inline-block;    /* 使其既具有block的宽度高度特性又具有inline的同行特性 */
    transition: background-color 0.6s ease;         /* CSS3 过渡 */
}

.active,
.dot:hover {
    background-color: #717171;
}

/* 淡出动画 */
.fade {
    -webkit-animation-name: fade;            /* Safari 和 Chrome */
    -webkit-animation-duration: 1.5s;        /* Safari 和 Chrome */
    animation-name: fade;               /* 必须定义动画的名称和动画的持续时间。*/                     
    animation-duration: 1.5s;           /* 如果省略持续时间,动画将无法运行,因为默认值是0 */
}

@-webkit-keyframes fade {     /* Safari 和 Chrome */
    from { opacity: .4 }       /* opacity 属性 透明度级别 */

    to { opacity: 1 }
}

@keyframes fade {            /* opacity???? 明天看 */
    from { opacity: .4}
    to {opacity: 1}
}

JS代码

var slideIndex = 0;
showSlides();

function showSlides() {
    var i;
    var slides = document.getElementsByClassName("mySlides");
    var dots = document.getElementsByClassName("dot");
    for (i = 0; i < slides.length; i++) {
        slides[i].style.display = "none";
    }
    slideIndex++;
    if (slideIndex > slides.length) {
        slideIndex = 1
    }
    for (i = 0; i < dots.length; i++) {
        dots[i].className = dots[i].className.replace(" active", "");  /* replace如果没找到的话 返回原字符 */
    }
    slides[slideIndex - 1].style.display = "block";
    dots[slideIndex - 1].className += " active";
    setTimeout("showSlides()", 2000); // 切换时间为 2 秒
}

实现幻灯片自动播放(同时添加了上一张下一张按钮功能和点选)

HTML代码(把图片改一下就行)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="2.css" type="text/css">
</head>
<body>
    <div class="slideshow-container">
        <div class="mySlides fade">
          <div class="numbertext">1 / 3</div>
          <img src="../images/img1.jpg" style="width:100%">
          <div class="text">文本 1</div>
        </div>
       
        <div class="mySlides fade">
          <div class="numbertext">2 / 3</div>
          <img src="../images/img2.jpg" style="width:100%">
          <div class="text">文本 2</div>
        </div>
       
        <div class="mySlides fade">
          <div class="numbertext">3 / 3</div>
          <img src="../images/img3.jpg" style="width:100%">
          <div class="text">文本 3</div>
        </div>
       
        <a class="prev" onclick="plusSlides(-2)">❮</a>  <!-- 这里-2是因为slideIndex++; -->
        <a class="next" onclick="plusSlides(0)">❯</a>   <!-- 这里 0是因为slideIndex++;-->
      </div>
      <br>
      <div style="text-align:center">
        <span class="dot" onclick="currentSlide(0)"></span> 
        <span class="dot" onclick="currentSlide(1)"></span> 
        <span class="dot" onclick="currentSlide(2)"></span> 
      </div>
      <script src="2.js"></script>
</body>
</html>

CSS代码

* {box-sizing:border-box}
body {font-family: Verdana,sans-serif;}
.mySlides {display:none}
 
/* 幻灯片容器 */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}
 
/* 下一张 & 上一张 按钮 */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  margin-top: -22px;
  padding: 16px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;           /* 左侧按钮的圆角边框  右上角和右下角 */
}
 
/* 定位 "下一张" 按钮靠右  以及右侧按钮的圆角边框  左上角和左下角*/
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}
 
/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}
 
/* 标题文本 */
.text {
  color: #f2f2f2;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;
}
 
/* 数字文本 (1/3 等) */
.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}
 
/* 标记符号 */
.dot {
  cursor:pointer;
  height: 13px;
  width: 13px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;            /* 实现圆形   */
  display: inline-block;
  transition: background-color 0.6s ease;
}
 
.active, .dot:hover {
  background-color: #717171;
}
 
/* 淡出动画 */
.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;
}
 
@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}
 
@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

JS代码

var slideIndex = 0;
var t;
showSlides(slideIndex);
 
function plusSlides(n) {
  showSlides(slideIndex += n);
}
 
function currentSlide(n) {
  showSlides(slideIndex = n);
}
 
function showSlides(n) {
  clearTimeout(t);
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {slideIndex = 0}   /* 这里设置为slideInde=0  因为后面slideIndex++; */
  if (n < 0) {slideIndex = slides.length-1}   /* 这里是slides.length-1因为后面slideIndex++; */
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none"; 
  }
  /* 自动播放设置变量自增 */
  slideIndex++;
  if (slideIndex > slides.length) {
      slideIndex = 1;     /* 这里不能设置slideInde=0  设置为1 因为后面slideIndex没有++ */
  }
  for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active", "");
  }
  slides[slideIndex-1].style.display = "block"; 
  dots[slideIndex-1].className += " active";
  t = setTimeout("showSlides(slideIndex)", 3000); // 切换时间为 2 秒
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158550.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 镜像二十四小时_docker 运行镜像

    镜像二十四小时_docker 运行镜像一、查看当前docker中下载的镜像,如下图,当前我的Docker容器中存在两个镜像,tomcat、mysql二、启动镜像(因启动命令参数过多,同时各种镜像启动时可以增加额外的参数,本次以启动mysql5.6为例)dockerrun-p本机映射端口:镜像映射端口-d–name启动镜像名称-e镜像启动参数镜像名称:镜像版本号参数释义:-p本机端口和容器启动端口映射 -d后台运行 –name…

    2022年9月16日
  • 超详细Anaconda安装教程

    超详细Anaconda安装教程超详细Anaconda安装教程

    2022年8月29日
  • qtcpsocket 客户端_qtcpsocket接收结构体数据

    qtcpsocket 客户端_qtcpsocket接收结构体数据实现tcp客户端通信并支持keepAlive探测包#pragmaonce#include<QObject>#include<QTcpSocket>/***********************************************作者:wujianhua*时间:2021/02/25*类介绍:sockettcp客户端通信类************************************************/classT.

    2022年9月9日
  • break 与continue语句的区别_return用法

    break 与continue语句的区别_return用法来源:http://blog.csdn.net/u014612521/article/details/42720987break可以离开当前switch、for、while、dowhile的程序块,并前进至程序块后下一条语句,在switch中主要用来中断下一个case的比较。在for、while与dowhile中,主要用于中断目前的循环执行。continue的作用与

    2022年9月12日
  • Delphi考虑sql注入 QuotedStr

    Delphi考虑sql注入 QuotedStr之前只在BS架构的项目中考虑了Sql注入问题,却很少考虑到用了多年的Delphi项目也应该考虑Sql注入的问题,今天做了个实验,成功完成注入,把表里数据全部删除,以后再做Delphi项目还真的考虑这个问题。总体讲,大体知道有两种方式可以避免Delphi中的Sql注入:1、用QuotedStr替代”’进行字符串拼接;2、采用传参数的方式与数据库交互,这种方式哪天再仔细体验一下。 以下为一个小测试,…

    2022年10月18日
  • 安卓手机4g网络慢如何设置(手机连接4g却不能上网)

    5G时代即将来临为啥,我还要写这篇文章呢?5G想要普及还要再等多一段时间,目前4G还是我们使用网络的主流,所以我今天我来关爱一下我们的4G网络。先来了解一下4G的标准网速,按照4G技术标准,静态、行人的网络速率125MB/s(1Gbps)、高速移动状态下125KB/s才算得上4G。然后对照一下自己的手机网速,你会发现在我们日常生活中我们的网速往往达不到这个所谓标准,是不是说4G就骗我们…

    2022年4月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号