首页 > 其他分享 >js实现点击切换图片,常用于图片画廊、产品展示、选项卡切换等

js实现点击切换图片,常用于图片画廊、产品展示、选项卡切换等

时间:2024-06-06 10:31:00浏览次数:13  
标签:选项卡 content let 切换 span nav div 导航 图片

        以下代码实现产品展示或图片画廊相关的功能。具体来说,它实现了一个带有导航和对应内容区域的产品展示页面。用户通过导航来浏览不同的产品/项目,并在内容区域中查看与每个产品/项目相关的详细信息(在这种情况下是两张图片)。

  1. 导航与内容的联动:页面有一个导航区域(由nav元素表示)和一个内容区域(由content元素表示)。导航区域包含一系列的span元素,每个span元素代表一个产品/项目,并显示其名称。内容区域包含一系列的div元素,每个div元素包含两个图片,代表相应产品的两张图片。
  2. 点击导航切换内容:当用户点击导航区域中的某个span元素时,内容区域中的对应div(与点击的span具有相同的索引)会被高亮显示(通过添加一个名为show的类),而其他div则不会被高亮。同时,被点击的span也会获得一个名为siz的类
  3. 初始状态:在代码的最后,默认将第一个div和第一个span设置为高亮状态(通过添加showsiz类)。

 

let car={
    一堆数据
}
//第一种 版本 更换src
let data = car.data;//这是已经定义好的数据
let nav = document.querySelector(".nav");
for(let i=0;i<data.length;i++){
	let span = document.createElement("span");
	span.innerText = data[i].name;
	span.onclick = function (){
		let imgs = document.querySelectorAll("img");
		imgs[0].setAttribute("src",data[i].pics[0]) 
		imgs[1].setAttribute("src",data[i].pics[1]) 
	}
	nav.appendChild(span);
}
let imgs = document.querySelectorAll("img");
imgs[0].setAttribute("src",data[0].pics[0]) 
imgs[1].setAttribute("src",data[0].pics[1]) 
//第二种方法 渲染所有节点 显示隐藏
let data = car.data;
	let nav = document.querySelector(".nav");
	let content = document.querySelector(".content");
	for(let i=0;i<data.length;i++){
		let span = document.createElement("span");
		span.innerText = data[i].name;
		span.onclick = function (){
			// 先清空类名
			document.querySelector(".show").className = "";
			let divs = document.querySelectorAll(".content div");
			// 获取content 下的所有div 
			divs[i].className = "show";
			// 给和span相同顺序的 div 添加类名
			document.querySelector(".siz").className = "";
			let span = document.querySelectorAll(".nav span");
			span[i].className = "siz";
		}
		nav.appendChild(span);

		let div = document.createElement("div");
		let img1 = document.createElement("img");
		let img2 = document.createElement("img");
		img1.setAttribute("src",data[i].pics[0]);
		img2.setAttribute("src",data[i].pics[1]);
		div.appendChild(img1)
		div.appendChild(img2)
		content.appendChild(div);
	}
	let divs = document.querySelectorAll(".content div");
	let span = document.querySelectorAll(".nav span");
	divs[0].className = "show";
	span[0].className = "siz";
*{
	margin: 0;
	padding: 0;
}
.nav{
	width: 80%;
	margin: 0 auto;
	height: 65px;
	display: flex;
}
.nav span{
	flex: 1;
	height: 65px;
	text-align: center;
	line-height: 65px;
	font-size: 24px;
	font-weight: bold;
}
.content{
	width: 80%;
	height: 500px;
	margin: 0 auto;
}
.content img{
	width: 49%;
}
.content div{
    display: none;
}
/*特殊类名 谁有这个类名谁显示*/
.content .show{
	display: block;
}
.nav .siz{
	background: orange;
}
<div class="nav"></div>
<div class="content"></div>

标签:选项卡,content,let,切换,span,nav,div,导航,图片
From: https://blog.csdn.net/m0_64455070/article/details/139492602

相关文章

  • 每日AIGC最新进展(20):基于树的长视频理解VideoTree、IBM研究院提出AI生成图片生成检测
    DiffusionModels专栏文章汇总:入门与实战VideoTree:AdaptiveTree-basedVideoRepresentationforLLMReasoningonLongVideos本文介绍了一种名为VideoTree的新框架,旨在提高长视频理解任务中的推理能力。VideoTree通过自适应和分层的方法,动态提取与查询相关的视频帧,......
  • 进程切换分析(1):基本框架
    一、前言本文主要是以context_switch为起点,分析了整个进程切换过程中的基本操作和基本的代码框架,很多细节,例如tlb的操作,cache的操作,锁的操作等等会在其他专门的文档中描述。进程切换包括体系结构相关的代码和系统结构无关的代码。第二、三、四分别描述了context_switch的代码脉络......
  • 每天五分钟计算机视觉:基于KNN算法完成图片分类任务
    本文重点在数字化和智能化的时代,图片分类作为计算机视觉领域的重要任务之一,已经广泛应用于各种场景,如安防监控、医疗诊断、智能推荐等。传统的图片分类方法往往需要复杂的手工特征提取和繁琐的分类器设计,而机器学习算法的引入为图片分类带来了不同的思路。KNN算法概述KNN算......
  • JPEG图片的解码与压缩简介
    JPEG图片的解码\压缩流程一、解码:1:创建并初始化一个JPEG解码对象(解码对象是一个结构图对象)/*Step1:allocateandinitializeJPEGdecompressionobject*//*overrideerror_exit.*//*NowwecaninitializetheJPEGdecompressionobject.*/jpeg_......
  • 如何将多页的PDF转成一张长图片?
    在我们的日常工作中,PDF文件是一种常见的格式,用于传递和分享各种类型的信息。然而,有时候我们可能需要将PDF文件转换成更长形式的图片,以便于在特定场景下使用。本文将介绍如何将PDF文件转换成长图,并介绍一些实用的工具。1、.SmallPDF中文版SmallPDF中文版是一款在线PDF转换工具,可......
  • 有什么方法可以批量把图片转BMP格式?几个操作起来简单且效果好的方法
    图片转BMP怎么弄?在数字图像处理中,不同的文件格式具有不同的特点和适用场景。BMP是一种常用的图像文件格式,以其高质量的图像表现和简单的结构而广受欢迎。有时,我们可能需要将其他格式的图片转换为BMP格式以满足特定需求。本文将为大家详细介绍几个方法轻松实现图片转BMP的操作,感......
  • 多线程实现爬取图片
    importosimportthreadingimportrequestsfromget_img_urlimportget_img_url#下载单张图片方法,方法入参为图片url地址和图片名称defdownload_image(url,filename):response=requests.get(url)withopen(filename,'wb')asf:f.write(respon......
  • nmysql主从切换
    环境:OS:Centos7DB:mysql5.7拓扑结构:主:192.168.1.22从1:192.168.1.13从2:192.168.1.23 1.停掉192.168.1.22/home/mysql57/bin/mysqladmin-hlocalhost-uroot-phxl3040-S/home/mysql57/data/mysql.sockshutdown这个时候没有业务数据写入 2.从库1变成主库192.168.1.1......
  • Apple iPhone 双 SIM 卡切换使用指南 All In One
    AppleiPhone双SIM卡切换使用指南AllInOneiPhone双SIM卡双卡双待iPhone8bugs不支持双卡nanoSIM,而且卡托放置SIM卡时,有芯片的一面是朝里面的......
  • MJ伪造图片名(1,2,3...)
    importosdefrename_images_in_folder(root_folder):#遍历根目录forroot,dirs,filesinos.walk(root_folder):ifnotdirs:#检查当前目录下是否有子目录,没有则表示是底层子文件夹count=1forfileinfiles:......