使用JavaScript实现图片的自动轮播

2023-09-21 22:55:09

介绍

在网站开发中,经常会遇到需要展示多张图片并自动切换的需求,这就需要使用JavaScript来实现图片的自动轮播功能。本文将通过一个简单的例子,演示如何用JavaScript实现图片的自动轮播。

实现步骤:

  1. HTML结构: 首先, 创建一个包含图片列表的HTML结构,每个图片都用一个标签表示,并设置一个唯一的id,以便后续操作。
<div id="slider">
  <img id="img1" src="image1.jpg" alt="Image 1">
  <img id="img2" src="image2.jpg" alt="Image 2">
  <img id="img3" src="image3.jpg" alt="Image 3">
</div>
  1. CSS样式: 为了显示图片和实现自动轮播效果,需要添加一些CSS样式。在这个例子中,我们使用绝对定位使图片叠加,并设置宽度、高度和动画过渡效果。
#slider {
  position: relative;
  width: 600px;
  height: 400px;
  overflow: hidden;
}

#slider img {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

#slider img.active {
  opacity: 1;
}
  1. JavaScript代码: 下面是用JavaScript实现图片自动轮播的关键代码。我们使用一个计时器来定时切换图片,并利用CSS类来控制显示当前活动图片和隐藏其他图片。
// 获取图片列表和第一个图片
const slider = document.getElementById('slider');
const images = Array.from(slider.getElementsByTagName('img'));
let currentImage = 0;

// 启动定时器,每隔3秒切换一张图片
setInterval(() => {
  // 隐藏当前图片
  images[currentImage].classList.remove('active');

  // 计算下一张图片的索引
  currentImage = (currentImage + 1) % images.length;

  // 显示下一张图片
  images[currentImage].classList.add('active');
}, 3000);

解释说明: 在这个例子中,我们首先通过id获取到放置图片的父容器slider,然后利用getElementsByTagName方法获取到所有的img标签,并将其转为数组形式。 接着,我们定义一个变量currentImage来表示当前显示的图片索引,默认为0。 最后,我们使用setInterval函数设置一个定时器,每隔3秒就执行一个回调函数。回调函数中,我们先移除当前显示图片的.active类名,然后计算下一张图片的索引(使用取余运算实现循环切换),并给下一张图片添加.active类名来显示出来。

总结

通过上述步骤,我们成功实现了使用JavaScript来实现图片的自动轮播。在HTML结构中,我们使用标签来表示图片,并给每个图片设置了唯一的id。在CSS样式中,我们使用绝对定位和过渡效果来实现图片切换的动画效果。最后,在JavaScript代码中,我们利用计时器和CSS类来控制图片的自动切换。

更多推荐

SkyWalking快速上手(六)——告警

文章目录前言一、什么是SkyWalking的告警功能二、为什么要使用SkyWalking的告警功能1.及时发现异常情况2.提高故障处理效率3.避免数据丢失和损坏4.提升系统性能和稳定性三、如何使用SkyWalking的告警功能1.告警规则2.告警通知3.告警持续时间四、注意事项1、合理设置告警规则和阈值1.1.确定监控

MongoDB的搭建 和crud操作

MongoDBdocker下载dockerrun--restart=always-d--namemongo-v/docker/mongodb/data:/data/db-p27017:27017mongo:4.0.6使用navcat工具使用MongoDBCrud操作jar包<dependency><groupId>or

notepad++配合正则表达式分组模式处理文本转化为sql语句

一、正则分组知识点补充正则分组和捕获():用于分组和捕获子表达式。大白话就是()匹配到的数据,通过美元符号加下标可以获取该数据,例如$1、$2,下标从1开始。下面的案例就采用该模式处理文本数据二、使用正则的需求背景有一份报表的数据,需要把数据入库到mysql数据库,因为数据很多,不可能手动一个一个转,这里采用正则表达式

Python基础

Python简介1.Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。2.Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言

【绝㊙️】三年开发内功心得

经典嵌套if-else问题这个也是老生常谈问题了,不管哪里都能看到。那如何解决方法一(重要):如果逻辑分支过多,即使你不解决嵌套if-slse,至少也要把每个if的{}里的逻辑抽到一个独立的方法或者工具类或者策略模式类,保证{}里只有一行或者简单几行代码,保证住流程的清晰,比如:Obejctdata=null;if(n

2022年统计用区划代码表SQL 01

行政区划代码为国家公布的六位县级以上行政区划代码行政区编码的用途:APP里做城市级联选择根据身份证前六位获取用户所在城市区县370786昌邑市370800济宁市370811任城区370812兖州区百度高德等接口通常都会返回adcode字段(行政区编码)根据行政区编码可以查询天气数据例如请求天气API接口,传参adcod

2、Window上的 虚拟机端口 暴露到 宿主机局域网教程

今天在公司的服务器主机上捣鼓虚拟机,要在虚拟机上安装一个oracle,虚拟机和主机能互相ping通的前提下,要将虚拟机上的端口号暴露在主机上,让项目组内的所有员工的电脑都能访问到该oracle数据库。也就是电脑A访问主机,虚拟机将oracle端口映射到主机上,这样电脑A便能通过主机上的ip映射访问到虚拟机上的oracl

windows安装linux部署docker服务全过程

windows安装linuxhttps://blog.csdn.net/laterstage/article/details/131460688如果不能查看linuxip信息,需要安装:yuminstallnet-tools.x86_64-ylinux安装Docker随着容器技术的兴起,Docker已经成为了最为流行的

Easyui里的datagrid嵌入select下拉框

问题:想使用datagird里嵌入select下拉框,并在提交form表单时获取datagrid选中的每行数据里的每个下拉框选中的值。解决方案:其中economicIssuesSelect使用下拉框,重点关注initEconomicIssues(row)方法。这里的方法需要传递row$('#queryPcpTable'

图论第三天|130. 被围绕的区域、417. 太平洋大西洋水流问题、827. 最大人工岛

130.被围绕的区域文档讲解:代码随想录-130.被围绕的区域状态:开始学习。思路:步骤一:深搜或者广搜将地图周边的‘O’全部改成’A’,如图所示:步骤二:再遍历地图,将‘O’全部改成‘X’(地图中间的‘O’改成了‘X’),将‘A’改回‘O’(保留的地图周边的‘O’),如图所示:本题代码(dfs):classSolut

Android 实战项目分享(一)用Android Studio绘制贝塞尔曲线的艺术之旅

一、项目概述欢迎来到创意之源!我们精心打造的绘图应用程序将带你进入一个充满艺术和技术的奇妙世界。通过使用AndroidStudio,我们实现了绘制贝塞尔曲线的功能,让你能够轻松创作出令人惊叹的艺术作品。不论你是热爱绘画的大学生还是渴望学习的艺术爱好者,这个应用程序将为你点燃创作的激情,让你沉浸在绘画的乐趣中。二、主要技

热文推荐