图片切换示例【JavaScript】

在 JavaScript 中实现图片切换可以通过多种方法,下面是一个简单的示例,使用 HTML、CSS 和 JavaScript 来实现图片的切换效果。

实现效果:

代码: 

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><title>图片切换示例</title><style>.image-container {text-align: center;margin: 20px;}img {max-width: 100%;height: auto;}</style></head><body><div class="image-container"><img id="image" src="./image/image1.jpg" alt="Image" /><br /><button id="prev">上一张</button><button id="next">下一张</button></div><script>//1. 定义图片数组const images = ['./image/image1.jpg','./image/image2.jpg','./image/image3.jpg'];//2. 初始化当前索引let currentIndex = 0;//3. 获取图片元素const imageElement = document.getElementById('image');//4. 为 “下一张” 按钮添加事件监听器document.getElementById('next').addEventListener('click', () => {currentIndex = (currentIndex + 1) % images.length;imageElement.src = images[currentIndex];console.log("当前图片路径:", imageElement.src)});// 5. 为 “上一张” 按钮添加事件监听器document.getElementById('prev').addEventListener('click', () => {currentIndex = (currentIndex - 1 + images.length) % images.length;imageElement.src = images[currentIndex];console.log("当前图片路径:", imageElement.src)});</script></body>
</html>

部分代码解析:

 4. 为 “下一张” 按钮添加事件监听器

document.getElementById('next').addEventListener('click', () => {currentIndex = (currentIndex + 1) % images.length;imageElement.src = images[currentIndex];
});
  • 获取 ID 为 next 的元素,并为其添加一个点击事件监听器。
  • 在点击时,更新 currentIndex,使其加 1,并使用取模运算来确保它在 images 数组的有效索引范围内(循环回到开头)。
  • 然后,将 imageElement 的 src 属性更新为新的图片路径,以显示下一张图片。
更新当前索引
currentIndex = (currentIndex + 1) % images.length;
  • currentIndex + 1:将当前索引增加 1,表示用户想要查看下一张图片。
  • % images.length:使用取模运算,确保 currentIndex 在有效范围内。如果 currentIndex 达到 images.length(即数组长度),则结果会回到 0,实现循环效果。
  • 例如,如果 currentIndex 是 2(第三张图片),加 1 后变成 3,再取模 3,结果为 0,表示回到第一张图片。

currentIndex = (currentIndex - 1 + images.length) % images.length;
  • currentIndex - 1:将当前索引减少 1,表示用户想要查看上一张图片。
  • + images.length:加上 images.length 是为了处理当前索引为 0 的情况,确保索引不会变为负数。如果 currentIndex 是 0,减 1 后会变为 -1,加上数组长度后会变为 images.length(即循环到数组的最后一张)。
  • % images.length:使用取模运算来确保 currentIndex 在有效范围内。如果 currentIndex 达到 images.length,取模后会变为 0,表示回到第一张图片。
  • 例如,如果 currentIndex 是 0(第一张图片),减 1 后变成 -1,加上 3(假设数组长度为 3)后变为 2,取模 3 结果为 2,表示当前索引变为最后一张图片。

 

更新图片源
imageElement.src = images[currentIndex];
  • imageElement.src:获取之前定义的图片元素。
  • images[currentIndex]:根据更新后的 currentIndex 获取相应的图片路径。
  • 将这个路径赋值给 imageElement.src,从而更改显示的图片为当前索引对应的图片。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1543151.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

单相电多相电

目录 1. 单相电 2. 多相电 3. 其他多相电系统 单相电和多相电是电力系统中常见的两种供电方式&#xff0c;主要区别在于电力传输的相数。以下分别介绍它们的基本概念、特征、以及应用场景。 1. 单相电 定义&#xff1a; 单相电指的是只有一根火线和一根零线的电力系统。这…

电玩店ps5倒计时软件试用版下载 佳易王电玩计时计费管理系统操作教程

一、前言 电玩店ps5倒计时软件试用版下载 佳易王电玩计时计费管理系统操作教程 佳易王电玩店计时计费软件&#xff0c;有两款&#xff0c;其中一款可显示倒计时剩余分钟数&#xff0c;另外一款是显示用了多长时间&#xff0c;都可以设置定时语音提醒。 二、显示倒计时软件图文…

python之装饰器、生成器

装饰器 什么是装饰器&#xff1f; 用来装饰其他函数&#xff0c;即为其他函数添加特定功能的函数。 装饰器的两个基本原则&#xff1a; 装饰器不能修改被装饰函数的源码 装饰器不能修改被装饰函数的调用方式

css禁止图片保存,CSS中的图片保存方法

“css中的图片”指的就是镶在CSS样式表中的图片。在我们用在浏览器保存网页时&#xff0c;很多时候&#xff0c;下载网页里的图片都下载不到&#xff0c;这样的话就会使网页非常不美观。所以&#xff0c;今天小编就给大家介绍集中保存方法。 以下是几种保存方法。 (一)使用网…

互联网产品经理在 AIGC 时代的升级攻略

在当今科技飞速发展的浪潮中&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;正以前所未有的速度改变着互联网的格局。对于互联网产品经理而言&#xff0c;这既是一个充满无限可能的机遇&#xff0c;也是需要积极应对的挑战。那么&#xff0c;在 AIGC 时代&#xff0…

Vulnhub:Cybero1

靶机下载地址 主机发现 扫描攻击机同网段存活主机。 nmap 192.168.31.0/24 -Pn -T4 靶机ip&#xff1a;192.168.31.118 端口扫描 nmap 192.168.31.118 -A -p- -T4 开放端口&#xff1a;21(ftp)、22(ssh)、80(http)、8085(http)。 HTTP信息收集 80 访问http://192.168.3…

毫米波雷达预警功能 —— 倒车预警(RCTA)

文档声明&#xff1a; 以下资料均属于本人在学习过程中产出的学习笔记&#xff0c;如果错误或者遗漏之处&#xff0c;请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。 笔记资料仅供学习交流使用&#xff0c;转载请标明出处&#xff0c;谢谢配…

股指期货的持仓量指标如何分析?有哪些作用?

股指期货市的持仓量是一个极其重要的指标&#xff0c;它就像市场的“晴雨表”&#xff0c;能反映出投资者的信心、市场的热度以及潜在的趋势。下面&#xff0c;我们就用大白话的方式来详细解读一下股指期货持仓量指标的分析方法及其作用。 一、什么是股指期货持仓量&#xff1…

骨传导耳机哪款值得入手?分享五款高品质好口碑骨传导耳机~

在不经意间&#xff0c;耳机已深深嵌入我们的日常生活&#xff0c;无论是早晨的匆忙出门&#xff0c;还是日常通勤、工作忙碌&#xff0c;乃至夜晚的休憩时光&#xff0c;它都是我们的忠实伴侣。然而&#xff0c;关于长时间佩戴耳机可能对听力造成的潜在影响&#xff0c;让不少…

【动态规划】两个数组的 dp 问题二

两个数组的 dp 问题 1.正则表达式匹配2.交错字符串3.两个字符串的最小ASCII删除和4.最长重复子数组 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1…

迅为iTOP-STM32MP157开发板板载4G接口(选配)_千兆以太网_WIFI蓝牙模块_HDMI_CAN_RS485_LVDS接口等

迅为ITOP-STM32MP157是基于ST的STM32MP157芯片开发的一款开发平台。在STM32MP157开发平台上&#xff0c;我们也做了比较多的创新&#xff0c;其中重要的一点就是&#xff0c;iTOP-STM32MP157核心板电源管理采用ST全新配套研制的PMIC电源管理芯片STPMU1A。为整个系统的稳定运行提…

【小程序】微信小程序课程 -2 快速上手

目录 1、快速上手基本概念 1.1 小程序常用组件 1.2 tabbar配置 1.3 尺寸单位 1.4 样式 1.4.1 全局样式 app.wxss 1.4.2 局部样式 xx.wxss 2、首页案例 2.1 button组件使用 2.2 swiper swiper-item 2.3 tips效果 2.4 引入矢量图 2.5 flex&#xff08;布局&#…

老程序员的数字游戏开发笔记(三) —— Godot出你的第一个2D游戏(一篇文章完整演绎Godot制作2D游戏的全部细节)

忽略代码&#xff0c;忽略素材&#xff0c;忽略逻辑&#xff01; 游戏的精髓是人性与思想&#xff0c;我一篇一篇地制作&#xff0c;不想动手的小伙伴看一看就可以&#xff0c;感受一下也不错&#xff0c;我们是有目的性的&#xff0c;这一切都是为今后的AI融合打基础&#xf…

pg入门3—详解tablespaces—下

pg默认的tablespace的location为空&#xff0c;那么如果表设置了默认的tablespace&#xff0c;数据实际上是存哪个目录的呢? 在 PostgreSQL 中&#xff0c;如果你创建了一个表并且没有显式指定表空间&#xff08;tablespace&#xff09;&#xff0c;或者表空间的 location 为…

CCRC-DSA数据安全评估师: 2030年人工智能将更为普及

近日&#xff0c;IDC发布了一份名为《人工智能对经济和就业的全球影响》的报告&#xff0c;预测到2030年&#xff0c;采用人工智能&#xff08;AI&#xff09;技术&#xff0c;以及在现有业务中应用AI和为企业及消费者提供更优质产品/服务的相关支出&#xff0c;将累计为全球经…

2024/9/22

系列文章目录 文章目录 系列文章目录前言一、两条腿走路二、编程语言能力提升1.廖雪峰的python课2.Leetcode&#xff08;数据结构题&#xff09; 三、机器学习能力提升1.统计学习方法 李航2.kaggle竞赛 四、神经网络能力提升1.神经网络与深度学习 邱锡鹏2.一套自己的万金油模板…

[sniffer]分析

注意事项 ap设置为不加密&#xff0c;sinffer可查看tcp状态 尽量先用不打印调试信息的版本&#xff0c;提高cpu 吞吐 packets Singal&#xff1a;表示信号强度 channel&#xff1a;表示信道 data rate&#xff1a;表示速率 flags&#xff1a;"#“表示ACK&#xff1b;”&…

倍增算法——AtCoder Beginner Contest 370 F

F - Cake Division 题意&#xff1a;就是说给你一个蛋糕&#xff0c;然后又n块&#xff0c;让你分成k份&#xff0c;每份蛋糕必须要相连&#xff0c;然后问你所有分的情况中&#xff0c;最小的那一份蛋糕&#xff0c;最大的质量是多少&#xff0c;然后判断&#xff0c;在每一种…

【永磁同步电机(PMSM)】 6. 矢量空间算法(SVPWM)

【永磁同步电机&#xff08;PMSM&#xff09;】 6. 矢量空间算法&#xff08;SVPWM&#xff09; 1. SVPWM 的基本原理1.1 SVPWM 的优点1.2 SVPWM 的电路拓扑1.3 连续旋转的空间矢量 2. SVPWM 的算法实现2.1 电压矢量组合方案2.2 SVPWM 的实现步骤 3. 基于 Simulink 的 SVPWM 仿…

根据一级分类Id获取专辑标签(内连接,一对多)

文章目录 base_attributebase_attribute_value 1、BaseAttribute2、BaseAttributeValue3、BaseCategoryApiController --》findAttribute()4、BaseCategoryServiceImpl --》findAttribute()5、BaseAttributeMapper6、BaseAttributeMapper.xml 当选择完专辑分类之后&#xff0c;…