用html+css+js实现的一个简单的图片切换特效

实现一个简单的图片切换特效,可以使用 HTML、CSS 和 JavaScript。

整个过程可以分为以下几个步骤:

  1. 构建 HTML 结构
  2. 样式布局
  3. 实现图片切换效果

具体实现流程:

  1. 构建 HTML 结构
<div class="slider">
  <img src="img1.jpg" alt="图片1">
  <img src="img2.jpg" alt="图片2">
  <img src="img3.jpg" alt="图片3">
</div>

<div class="controls">
  <span data-index="1"></span>
  <span data-index="2"></span>
  <span data-index="3"></span>
</div>

我们需要一个容器,用于显示图片,此处使用一个 div 元素,并添加一个类名 slider。然后,插入图片元素 img,设置其 src 属性(对应图片文件的路径),并添加 alt 属性,用于辅助阅读和 SEO 的目的。

同时,我们还需要一个控制器,用于切换图片,此处使用一个 div 元素,并添加一个类名 controls。然后,插入几个 span 元素,分别用于切换到不同的图片,通过 data-index 属性来标识该 span 元素对应的图片的索引值。

  1. 样式布局

样式布局可以用 CSS 来调整,主要是对 .slider 和 .controls 的样式进行设置。

.slider {
  position: relative;
  overflow: hidden;
  width: 500px;
  height: 350px;
}

.slider img {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity .5s ease-in-out;
}

.slider img.active {
  opacity: 1;
}

.controls {
  margin-top: 10px;
}

.controls span {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 5px;
  border-radius: 50%;
  background-color: #ccc;
  cursor: pointer;
}

.controls span.active {
  background-color: #000;
}

对于 .slider 容器,将其设置为相对定位,设置宽度和高度来指定容器的大小。图片元素 img 需要使用绝对定位,并移动到容器的左上角(top:0;left:0),同时将其 opacity 属性设置为 0,以便在初始化时隐藏图片。

同时,为了让图片切换更加平滑,我们还需要设置过渡效果,并在切换时通过为目标图片添加类名 .active,同时移除当前图片的该类名,来让图片逐渐显示出来。

控制器 .controls 上设置了 margin-top 属性,用于将其与图片容器隔离开来。每个 span 元素需要使用 display:inline-block; 设置为行内块元素,并设置其宽度、高度、边距、圆角和背景颜色等样式,为其添加一个 cursor: pointer; 样式,以让用户鼠标悬停时鼠标指针变为手型。

  1. 实现图片切换效果

要实现图片切换效果,我们需要使用 JavaScript 来监听控制器的点击事件,并根据点击 span 元素的 data-index 属性来切换图片。

const images = document.querySelectorAll(".slider img");
const controls = document.querySelectorAll(".controls span");

let currentIndex = 0;

function setActiveImage(index) {
  images[currentIndex].classList.remove("active");
  images[index].classList.add("active");
  currentIndex = index;
}

controls.forEach(function (control) {
  control.addEventListener("click", function () {
    const index = this.getAttribute("data-index");
    setActiveImage(index - 1);
  });
});

首先,获取到 .slider 和 .controls 各自的元素集合,并将 currentIndex 设置为 0,作为初始值。然后,定义 setActiveImage 函数,用于将指定的图片(根据 index)设置为当前显示的图片,并将其对应的 span 元素设置为 active 状态。

最后,遍历所有的控制器 span 元素,为其添加 click 事件监听器。当用户单击某个控制器时,从该元素的 data-index 属性中获取到要显示的图片的索引值,然后调用 setActiveImage 函数来切换到目标图片。

示例1:

<!DOCTYPE html>
<html lang="zh-cn">

<head>
  <meta charset="UTF-8">
  <title>图片切换特效</title>
  <style>
    /* CSS 样式和 HTML 结构略 */
  </style>
</head>

<body>
  <div class="slider">
    <img src="img1.jpg" alt="图片1">
    <img src="img2.jpg" alt="图片2">
    <img src="img3.jpg" alt="图片3">
  </div>

  <div class="controls">
    <span data-index="1" class="active"></span>
    <span data-index="2"></span>
    <span data-index="3"></span>
  </div>

  <script>
    // JavaScript 代码略
  </script>
</body>

</html>

这个示例中指定了一个控制器默认为激活状态,使得在页面最开始加载时即会显示第一张图片。

示例2:

<!DOCTYPE html>
<html lang="zh-cn">

<head>
  <meta charset="UTF-8">
  <title>图片切换特效</title>
  <style>
    /* CSS 样式和 HTML 结构略 */
  </style>
</head>

<body>
  <div class="slider">
    <img src="img1.jpg" alt="图片1">
    <img src="img2.jpg" alt="图片2">
    <img src="img3.jpg" alt="图片3">
  </div>

  <div class="controls">
    <span data-index="1"></span>
    <span data-index="2" class="active"></span>
    <span data-index="3"></span>
  </div>

  <script>
    // JavaScript 代码略
  </script>
</body>

</html>

这个示例中,以第二张图片为默认展示图片,不同于示例1,这里并不用添加图片所在 span 元素的 active 类,每次重新切换展示的时候,active 类都会重新设置。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用html+css+js实现的一个简单的图片切换特效 - Python技术站

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

相关文章

  • IE浏览器下的CSS问题小结

    IE 浏览器是一个老旧的浏览器,它对 CSS 的支持程度不如现代浏览器。因此,在开发网站时,我们需要注意一些 IE 浏览器下的 CSS 问题。下面是一个完整攻略,包含了如何解决 IE 浏览器下的 CSS 问题的过程和两个示例说明。 IE 浏览器下的 CSS 问题 问题一:盒模型 IE 浏览器中的盒模型与其他浏览器不同。在 IE 浏览器中,盒模型的宽度和高度包…

    css 2023年5月18日
    00
  • mui上拉加载功能实例详解

    MUI上拉加载功能实例详解 MUI是一种web开发框架,提供了很多方便的组件和工具,其中上拉加载是MUI框架中的一个常用功能。本文将对MUI上拉加载功能进行详细讲解,并提供两条示例进行说明。 上拉加载实现原理 MUI上拉加载的实现依赖于MUI的scroll组件。当用户滚动内容区域时,scroll组件会触发一个scroll事件,此时我们可以通过监听scroll…

    css 2023年6月10日
    00
  • CSS中的table-cell属性使用实例教程

    下面是关于“CSS中的table-cell属性使用实例教程”的详细讲解: 什么是table-cell属性? table-cell属性是CSS3中新增的属性,它用于将元素作为表格单元格来显示。这个属性通常应用于div元素,可以将它们作为表格单元格来使用。使用display:table-cell来定义一个元素,能够带来类似表格单元格的效果。 如何使用table-…

    css 2023年6月10日
    00
  • CSS3 中filter(滤镜)属性使用详解

    下面是详细的攻略: CSS3 中filter(滤镜)属性使用详解 CSS3 中的 filter 属性主要用于对元素进行视觉效果的处理,可以实现一些有趣的效果,比如模糊、变形、颜色调整等。 基本语法 filter 属性可以作用于任何 HTML 元素,但只有在现代浏览器中才能完全支持,语法如下: filter: function(param); 其中 funct…

    css 2023年6月10日
    00
  • 分享bootstrap学习笔记心得(组件及其属性)

    分享bootstrap学习笔记心得(组件及其属性) 1. 什么是bootstrap Bootstrap是Twitter公司开发的一个前端框架,它基于HTML、CSS、JavaScript,通过预设的样式,可以使前端页面快速搭建和美化。现在已经成为全球最受欢迎的前端框架之一。 2. 常用组件及其属性 2.1 导航栏(Navbar) Navgation Bar(…

    css 2023年6月11日
    00
  • CSS中Float(浮动)相关技巧文章

    下面是关于“CSS中Float(浮动)相关技巧文章”的完整攻略: 1. 浮动(Float)是什么? 浮动是CSS中一种基本的定位机制,它可以实现元素的左右浮动,使文本围绕图像等对象布局,同时也可以实现多栏布局等效果。 2. 如何使用浮动? 可以通过CSS的float属性实现元素的浮动定位。float属性可取的值包括left、right、none和inheri…

    css 2023年6月10日
    00
  • 使图片旋转的3种解决方案

    下面是“使图片旋转的3种解决方案”的完整攻略。 方案一:使用CSS3的transform属性 CSS3提供了transform属性,可以用来实现对元素的旋转、缩放、移动等变换效果。其中,旋转可以通过rotate()函数来实现。具体操作步骤如下: 给图片添加一个class,例如rotate-img: <img src="img.jpg&quot…

    css 2023年6月11日
    00
  • 在div底部显示背景图片实现代码

    为了在div底部显示背景图片,可以使用以下步骤: 第一步:为div设置样式 首先在HTML文件中创建一个div元素,并为该元素设置样式。这里需要设置div的高度,以及背景图片的相关属性。具体代码如下: <div class="my-div"></div> .my-div { height: 200px; backg…

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