图片切换示例【JavaScript】

news2024/9/24 2:28:28

在 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.coloradmin.cn/o/2159087.html

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

相关文章

VMware Workstation 17.5安装教程

目录 软件介绍 1、下载安装包 2、安装虚拟机 3、卸载虚拟机 软件介绍 VMware&#xff08;虚拟机&#xff09;是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统&#xff0c;通过它可在一台电脑上同时运行更多的Microsoft Windows、Linux…

看Threejs好玩示例,学习创新与技术(React-three-fiber)

什么&#xff0c;竟有人把ThreeJS和React绑定在一起&#xff0c;混着用&#xff1f; 1、VUE劫持问题 暂先把今天的问题先放一边&#xff0c;先简单回顾下vue劫持的情况。vue会把data里面的数据自动转换为属性&#xff0c;方便界面与数据交互。这本身是没有任何问题&#xff0…

快手旗下——Kolors模型部署与使用指南

以下是按照要求重写后的 Kolors 模型部署与使用指南&#xff0c;文章风格偏技术性&#xff0c;但保持简洁和易懂的特点&#xff1a; Kolors 模型部署与使用指南 一、Kolors 简介 Kolors 是由快手 Kolors 团队开发的文本到图像生成模型&#xff0c;基于大规模的潜在扩散技术。…

找不到libcef.dll怎么办,libcef.dll丢失怎么重新安装

在计算机使用过程中&#xff0c;我们常常会遇到各种问题。其中&#xff0c;libcef.dll丢失是一个常见的错误提示。libcef.dll是Chromium Embedded Framework的动态链接库&#xff0c;它是许多应用程序和游戏所必需的组件。当libcef.dll丢失或损坏时&#xff0c;可能会导致程序无…

2025秋招内推|招联金融

【投递方式】 直接扫下方二维码&#xff0c;使用内推码: igcefb 【招聘岗位】 深圳&#xff0c;武汉&#xff1a; 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策划 产品运营 客户体验管理 风险管理 资产管理 【校招流程】 简历投递&#xff1a;9月…

死磕P7: JVM内存划分必知必会(一)

这是「死磕P7」系列第 001 篇文章&#xff0c;欢迎大家来跟我一起 死磕 100 天&#xff0c;争取在 2025 年来临之际&#xff0c;给自己一个交代。 JVM 内存区域划分是面试常考点&#xff0c;属于死记硬背型&#xff0c;比较让人头大的是不同版本的 JDK 具有不同的划分方式&…

计算机毕业设计 基于Python的医疗预约与诊断系统 Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

联合复现!考虑最优弃能率的风光火储联合系统分层优化经济调度!

前言 目前&#xff0c;尽管不断地追逐可再生能源全额消纳方式&#xff0c;大幅减小弃风弃光电量&#xff0c;但是若考虑风电、光伏发电的随机属性&#xff0c;全额消纳可能造成电网峰谷差、调峰难度及调峰调频等辅助服务费用的剧增&#xff0c;引起电网潜在运行风险。因此&…

英特尔AI加速器Gaudi 3下周发布,挑战NVIDIA统治地位!

英特尔正稳步推进其2024年计划&#xff0c;备受瞩目的AI加速器Gaudi3预计将于下周震撼登场。这款被誉为英特尔AI英雄的产品&#xff0c;专注于处理大规模训练和推理任务&#xff0c;拥有无与伦比的扩展能力。面对市场对高效能半导体的旺盛需求&#xff0c;英特尔首席执行官帕特…

Snap 发布新一代 AR 眼镜,有什么特别之处?

Snap 发布新一代 AR 眼镜&#xff0c;有什么特别之处&#xff1f; Snap 简介 新一代的 AR 眼镜特点 Snap 简介 Snap 公司成立于 2010 年&#xff0c;2017 年美国东部时间 3 月 2 日上午 11 时许&#xff0c;在纽交所正式挂牌交易&#xff0c;股票代码为 “SNAP”。其旗下的核…

力扣 2529.正整数和负整数的最大计数

文章目录 题目介绍解法 题目介绍 解法 采用红蓝染色体法&#xff0c;具体介绍参考 红蓝染色体法 通过红蓝染色体法可以找到第一个大于大于target的位置&#xff0c;使所以本题可以找第一个大于0的位置&#xff0c;即负整数的个数&#xff1b;数组长度 - 第一个大于1的位置即正…

2000-2012年各地级市市长特征信息数据/市长特征信息大全数据

2000-2012年各地级市市长特征信息数据 1、时间&#xff1a;2000-2012年 2、来源&#xff1a;百度搜索手工整理 3、指标&#xff1a;省级政区代码、省级政区名称、地市级政区代码、地市级政区名称、年份、市长姓名、出生年份、出生月份、籍贯省份代码、籍贯省份名称、籍贯地市…

垃圾邮件检测_TF-IDF分析,聚类分析与朴素贝叶斯

数据入口&#xff1a;基于机器学习的垃圾信息识别分类 - Heywhale.com 本数据集专为邮件和短信的垃圾信息分类设计&#xff0c;适合建立垃圾邮件检测模型。 数据说明 字段名说明message_content邮件或短信的正文内容is_spam标签&#xff0c;指示该消息是否为垃圾信息&#x…

恒生科指八连涨,汽车股强势

9月20日电 周五&#xff0c;港股三大股指集体收涨。恒生指数涨1.36%报18258.57点&#xff0c;连续第六个交易日上涨&#xff1b;恒生科技指数涨1.43%报3703.84点&#xff0c;连续第八个交易日上涨&#xff0c;创逾两个月来新高&#xff1b;恒生中国企业指数涨1.21%报6381.5点&a…

Set 和 Map 的模拟实现

1、引言 在数据结构与算法的学习与实践中&#xff0c;关联容器&#xff08;associative containers&#xff09;是不可忽视的重要工具。作为高效管理数据的一类容器&#xff0c;C 标准库中的 set 和 map 在现代软件开发中扮演着关键角色。这两个容器通过平衡二叉搜索树&#x…

c++类中的特殊函数

My_string.cpp #include <iostream> #include "my_string.h" #include <string.h> using namespace std; My_string::My_string():size(15) { this->ptr new char[size] ; this->ptr[0]\0;//串为空串 this->len 0; }; My_string::My_str…

Leetcode3289. 数字小镇中的捣蛋鬼

Every day a Leetcode 题目来源&#xff1a;3289. 数字小镇中的捣蛋鬼 解法1&#xff1a;哈希 代码&#xff1a; /** lc appleetcode.cn id3289 langcpp** [3289] 数字小镇中的捣蛋鬼*/// lc codestart class Solution { public:vector<int> getSneakyNumbers(vector…

基于SpringBoot+Vue+MySQL的电影院购票管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着电影产业的蓬勃发展&#xff0c;电影院已成为人们休闲娱乐的重要场所。然而&#xff0c;传统的电影院购票管理系统存在诸多不便&#xff0c;如购票流程繁琐、排队时间长、无法提前选座等问题&#xff0c;给观众的观影体验带…

光控资本:沪指涨0.72%,煤炭、银行板块拉升,车路云概念活跃

23日早盘&#xff0c;沪指盘中强势上扬&#xff0c;深证成指亦走高&#xff0c;场内超3100股飘红。 到午间收盘&#xff0c;沪指涨0.72%报2756.39点&#xff0c;深证成指涨0.58%&#xff0c;创业板指微涨0.09%&#xff0c;上证50指数涨0.73%&#xff1b;两市估计成交3657亿元。…