javascript实现点击图片切换功能

yizhihongxing

下面是详细讲解“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日

相关文章

  • jQuery实现根据滚动条位置加载相应内容功能

    当网页上某个区域的内容比较多,导致用户页面滚动增加时,我们可以通过jQuery实现根据滚动条位置加载相应内容的功能,以提升用户体验。具体实现步骤如下: Step 1:获取滚动条位置 使用jQuery的scroll()方法,当滚动条发生滚动时,触发回调函数。在回调函数中使用scrollTop()方法获取页面的滚动高度。 $(window).scroll(fun…

    css 2023年6月10日
    00
  • CSS的未来:一些试验性非主流隐藏在浏览器中的CSS属性

    CSS的未来可能不仅仅是我们已知的那些常规CSS属性,并且存在了一些试验性非主流CSS属性,这些属性可以在现代浏览器中进行实验和使用。在本篇攻略中,我们将讲解一些比较有趣的试验性非主流CSS属性,并提供一些示例。 1. clip-path clip-path是一个用于剪辑元素的CSS属性,它可以用于剪辑图片或其他图形,以及用于实现很炫酷的动画效果。clip-…

    css 2023年6月9日
    00
  • 创建图片对比slider滑块示例详解

    创建图片对比 slider 滑块示例的详细攻略如下: 1. 准备工作 首先,创建一个带有图片的 HTML 元素(通常是 或 ),设置它们的宽度、高度、背景和位置等样式属性。具体来说,需要创建两个元素(比如说A和B),它们的位置要重叠在一起,并且其中一个的 opacity 设置为0,如下所示: <div class="image-contain…

    css 2023年6月10日
    00
  • jQuery插件fullPage.js实现全屏滚动效果

    下面是“jQuery插件fullPage.js实现全屏滚动效果”的完整攻略: 一、前置知识 在学习此攻略之前,需要掌握以下技能: 基本的HTML、CSS和JavaScript语法; 使用jQuery库。 二、fullPage.js简介及安装 1. 简介 fullPage.js是一个基于jQuery的插件,可以轻松实现网页全屏滚动的效果。它是一个自适应的组件,…

    css 2023年6月10日
    00
  • EasySlider 基于jQuery功能强大简单易用的滑动门插件

    下面是EasySlider 基于jQuery功能强大简单易用的滑动门插件的完整攻略。 什么是EasySlider? EasySlider是一个基于jQuery的滑动门插件,支持滑动和淡入淡出两种切换效果,可以轻松地实现图片轮播、广告展示等功能。 如何使用EasySlider? 步骤一:引入jQuery和EasySlider插件 在网页中引入jQuery和Ea…

    css 2023年6月10日
    00
  • 提高CSS代码效率的编写技巧

    提高CSS代码效率的编写技巧是非常重要的,可以提高开发效率和代码质量。以下是一些常见的技巧和示例说明: 1. 使用嵌套,减少CSS选择器的数量 在编写CSS时,我们经常使用css选择器来定位元素,这些选择器的数量越多,CSS文件的大小也就越大,性能也就越慢。因此,我们可以使用嵌套来减少选择器的数量,提高代码的可读性和可维护性。 例如,下面的示例中,我们使用了…

    css 2023年6月9日
    00
  • ie7中overflow:auto无效的解决方法

    下面我就为您详细讲解在IE7中解决overflow:auto无效的两种方法。 方法1:使用zoom:1来触发IE7的hasLayout属性 在IE7中overflow: auto属性常常会失效,这是因为IE7默认没有触发元素的“hasLayout”属性。解决这个问题的方法是为元素添加zoom: 1属性即可。 .box { overflow: auto; zo…

    css 2023年6月10日
    00
  • css的边偏移距离针对left和right可能性值探讨

    我们来详细讲解一下”CSS的边偏移距离针对left和right可能性值探讨”的攻略。 什么是CSS的边偏移距离 CSS的边偏移距离是CSS中的一种常用属性,可以通过设置其值来调整元素相对于其原始位置的偏移距离。 其中包括top、bottom、left、right四个方向,它们分别表示元素的上、下、左、右偏移距离。 left和right的取值 left和rig…

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