javascript实现点击图片切换功能

下面是详细讲解“JavaScript实现点击图片切换功能”的完整攻略。

1、HTML结构

如下所示的HTML结构中,我们将用JavaScript来实现当用户点击左侧的小图时,右侧显示对应的大图。

<div>
  <div class="thumbnails">
    <img src="small-1.jpg" alt="small-1">
    <img src="small-2.jpg" alt="small-2">
    <img src="small-3.jpg" alt="small-3">
    <img src="small-4.jpg" alt="small-4">
    <img src="small-5.jpg" alt="small-5">
  </div>
  <div class="viewer">
    <img src="large-default.jpg" alt="large-default">
  </div>
</div>

2、CSS样式

我们需要用CSS来设置一些样式,让页面呈现我们期望的形态。下面是一个简单的CSS,你可以选择按照自己的喜好进行修改。

.thumbnails {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.thumbnails img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  cursor: pointer;
}

.viewer img {
  width: 100%;
}

3、JavaScript实现

目前为止,页面的结构和样式我们都设置好了,接下来我们要用JavaScript来实现点击图片切换的功能。

首先,我们需要选中HTML中的元素。我们可以使用querySelector方法来选中元素。

let thumbnailImgs = document.querySelectorAll('.thumbnails img');
let viewerImg = document.querySelector('.viewer img');

然后,我们需要遍历所有小图,为它们分别添加点击事件。当小图被点击时,大图的src属性应该被修改为对应的src

thumbnailImgs.forEach(thumbnailImg => {
  thumbnailImg.addEventListener('click', function() {
    viewerImg.src = this.src.replace('small', 'large');
  });
});

这里使用了replace方法将小图的文件名替换为大图的文件名。当然,为了实现这一点,我们假设小图和大图的文件名都是相同的,只是大小不同。如果这个假设不成立,那我们就需要另寻他法了。

至此,我们已经完成了JavaScript代码的编写。完整代码如下:

let thumbnailImgs = document.querySelectorAll('.thumbnails img');
let viewerImg = document.querySelector('.viewer img');

thumbnailImgs.forEach(thumbnailImg => {
  thumbnailImg.addEventListener('click', function() {
    viewerImg.src = this.src.replace('small', 'large');
  });
});

4、示例说明

下面,我提供两个不同的示例,帮助你更好地理解这个功能。

第一个示例是使用未压缩的图片。在这个示例中,我们可以清晰地看到图片切换的效果。

<div>
  <div class="thumbnails">
    <img src="https://via.placeholder.com/100x100.png?text=Small%201" alt="small-1">
    <img src="https://via.placeholder.com/100x100.png?text=Small%202" alt="small-2">
    <img src="https://via.placeholder.com/100x100.png?text=Small%203" alt="small-3">
    <img src="https://via.placeholder.com/100x100.png?text=Small%204" alt="small-4">
    <img src="https://via.placeholder.com/100x100.png?text=Small%205" alt="small-5">
  </div>
  <div class="viewer">
    <img src="https://via.placeholder.com/500x500.png?text=Large%20Default" alt="large-default">
  </div>
</div>

第二个示例是使用压缩过的图片。在这个示例中,我们可以测试在图片大小较大或网络环境较差的情况下,图片切换的效果。

<div>
  <div class="thumbnails">
    <img src="https://via.placeholder.com/100x100.png?text=Small%201" alt="small-1">
    <img src="https://via.placeholder.com/100x100.png?text=Small%202" alt="small-2">
    <img src="https://via.placeholder.com/100x100.png?text=Small%203" alt="small-3">
    <img src="https://via.placeholder.com/100x100.png?text=Small%204" alt="small-4">
    <img src="https://via.placeholder.com/100x100.png?text=Small%205" alt="small-5">
  </div>
  <div class="viewer">
    <img src="https://via.placeholder.com/500x500.png?text=Large%20Default&compress=true" alt="large-default">
  </div>
</div>

以上就是完整的攻略了。希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现点击图片切换功能 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 使用css外部样式表的方法

    以下是“使用CSS外部样式表的方法”的完整攻略: 使用CSS外部样式表的方法 CSS外部样式表是一种将CSS样式定义在外部文件中,然后在HTML文件中引用的方法。这种方法可以使得CSS样式的管理更加方便,同时也可以提高网页的加载速度。以下是使用CSS外部样式表的步骤: 创建CSS文件:在本地计算机上创建一个CSS文件,例如“style.css”。 编写CSS…

    css 2023年5月18日
    00
  • vue 图片路径 “@/assets“ 报错问题及解决

    针对 “vue图片路径 @/assets 报错问题” 进行一下详细的讲解和解决攻略。 问题描述 在使用 Vue 开发中,当需要引入项目中的图片时,可能会遇到以下的报错: ./src/views/Home.vue Module not found: Error: Can’t resolve ‘@/assets/images/name.png’ in ‘D:\p…

    css 2023年6月10日
    00
  • 纯CSS实现鼠标放上滑动出半透明效果的文字说明(新手小白 必看)

    下面是纯CSS实现鼠标放上滑动出半透明效果的文字说明的完整攻略。 简介 这是一种常见的鼠标交互效果,在网页设计中经常用到。当鼠标放在特定的文字上时,文字会出现一种半透明的效果,以提醒用户该文字可点击。这种效果可以用纯CSS实现,而且实现起来非常简单。 实现步骤 首先,使用HTML创建需要加入效果的文字。 为这些文字创建一个class,并添加hover效果(鼠…

    css 2023年6月10日
    00
  • CSS Float布局过程与老生常谈的三栏布局

    CSS Float布局 什么是Float Float,即浮动,是CSS中一种布局方式。当该元素被设置为float元素时,它将元素从文档流中脱离出来,然后左右移动,直到遇到其容器的边界或另一个float元素为止。 Float的语法 .float-object { float: left | right | none | inherit; } float属性可取…

    css 2023年6月10日
    00
  • jQuery实现本地预览上传图片功能

    下面我就为您详细讲解如何使用jQuery实现本地预览上传图片的功能。 准备工作 在开始使用jQuery实现图片本地上传之前,您需要先准备好以下工作: 在html页面中引入jQuery库文件,可以通过CDN或者下载本地文件进行引用。 <!– CDN 引用 –> <script src="https://cdn.bootcdn.n…

    css 2023年6月11日
    00
  • 加速Webpack构建技巧总结

    当我们在进行前端开发时,Webpack构建时间较长是一个令人头痛的问题。因此,我们需要一些加速Webpack构建的技巧,以提高工作效率。接下来,我将就如何加速Webpack构建进行详细讲解,并提供两个实际示例说明。 1. 使用缓存 当我们重新启动Webpack打包时,Webpack会花费一些时间来对每个模块进行重新解析和编译。而使用缓存可以避免重新编译相同的…

    css 2023年6月9日
    00
  • CSS大师Eric采访实录

    CSS大师Eric采访实录 简介 本文是一篇关于CSS大师Eric采访实录的完整攻略。如果你对CSS技术和CSS大师Eric感兴趣,那么本文将会给你带来很多的有用信息。 攻略 阅读材料 在进行攻略之前,我们需要准备一些阅读材料,以便更好地理解CSS大师Eric的技术和思路。以下是一些推荐的资料: Eric Meyer的博客 CSS权威指南(Eric Meye…

    css 2023年6月9日
    00
  • jquery实现图片放大镜功能

    下面是详细的“jquery实现图片放大镜功能”的攻略。 准备工作 首先,需要准备一张图片,以及用于展示放大效果的区域。例如,我们可以在HTML中使用以下代码定义一个放大区域: <div class="magnify"></div> 接下来需要引入jQuery库,确保代码正常运行。 实现过程 鼠标移动事件 放大镜的一…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部