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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle amm和asmm,oracle AMM、ASMM区别以及相关用法

    oracle amm和asmm,oracle AMM、ASMM区别以及相关用法AMM:automaticmemorymanagement自动内存管理手动设置totalmemorysizeforthisinstancemaximummemorysizeforthisinstance数据库自动分配totalsgasizesgacomponentsizesinstancepgasizeindividualpgasizes即让数据库完全管理S…

    2022年6月7日
    45
  • Selenium:Chrome、Edge、Firefox、Opera、Safari常用WebDriver下载安装[通俗易懂]

    Selenium:Chrome、Edge、Firefox、Opera、Safari常用WebDriver下载安装[通俗易懂]简介:Selenium中运行需要先配置WebDriver,各主流浏览器安装配置大同小异。关联攻略:Selenium分布式运行:SeleniumGridPython+Jenkins+Selenium-Grid实现分布式web-ui自动化测试(centos+win10为例)基本操作:1、下载安装目标浏览器。2、查看浏览器版本:设置-帮助/关于浏览器等3、下载driver4、解压driver复制粘贴到配置好的环境变量Python所在目录5、编写代码调试启动注意事项:若找不到对

    2022年9月18日
    3
  • 第一课:什么是树莓派[通俗易懂]

    第一课:什么是树莓派[通俗易懂]楔子我对树莓派是情有独钟,不但在做这个方面的教学,而且录制了些教学视频,现在计划做几个树莓派的博客专栏,以弥补视频教学的不足。这是《树莓派系统专栏》的第一课,叫什么是树莓派(这也是我教学视频的第一课),希望给第一次接触树莓派的人有一个感性认识。树莓派长什么样我们要搞清楚一个刚接触的东西,最直观的是看它的实物,下面我就先上一张图。我希望上最好的图片给大家,包括专业和美感,这张图是树莓派官网…

    2022年5月4日
    71
  • android之Random.nextInt(k)陷阱「建议收藏」

    android之Random.nextInt(k)陷阱「建议收藏」API:Returnsapseudo-randomuniformlydistributedintinthehalf-openrange[0,k). 意思就是说,nextInt的取值是0到k-1,不包括k。

    2022年7月22日
    18
  • idea配置springboot热部署终极解决办法,解决热部署失效问题

    idea配置springboot热部署终极解决办法,解决热部署失效问题idea配置springboot热部署终极解决办法,解决热部署失效问题1.添加maven依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</a…

    2022年5月21日
    106
  • JDBC:深入理解PreparedStatement和Statement[通俗易懂]

    JDBC:深入理解PreparedStatement和Statement[通俗易懂]前言最近听一个老师讲了公开课,在其中讲到了PreparedStatement的执行原理和Statement的区别。当时听公开课老师讲的时候感觉以前就只知道PreparedStatement是“预编译类”,能够对sql语句进行预编译,预编译后能够提高数据库sql语句执行效率。但是,听了那个老师讲后我就突然很想问自己,预编译??是谁对sql语句的预编译??是数据库?还是PreparedStatement

    2022年6月13日
    30

发表回复

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

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