js实现鼠标切换图片(无定时器)

yizhihongxing

JS实现鼠标切换图片(无定时器)的攻略如下:

步骤一:搭建HTML结构

首先,我们需要搭建一个HTML结构,用于展示图片和显示鼠标切换效果。具体可以参考下面的代码示例:

<div class="img-wrapper">
  <img src="https://picsum.photos/id/1/200/300" alt="image1">
  <img src="https://picsum.photos/id/2/200/300" alt="image2">
  <img src="https://picsum.photos/id/3/200/300" alt="image3">
  <img src="https://picsum.photos/id/4/200/300" alt="image4">
</div>
<div class="dots">
  <span class="dot active"></span>
  <span class="dot"></span>
  <span class="dot"></span>
  <span class="dot"></span>
</div>

其中,<div class="img-wrapper"> 是用来包含多张图片的容器,<div class="dots"> 是用来展示鼠标切换效果的点点容器,目的是让用户知道当前正在查看的是哪张图片。

步骤二:编写CSS样式

接下来,我们需要编写CSS样式,以便美化页面和实现鼠标切换效果。具体可以参考下面的代码示例:

.img-wrapper {
  position: relative;
  height: 300px;
}
.img-wrapper img {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
.img-wrapper img.active {
  opacity: 1;
}
.dots {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}
.dot {
  height: 8px;
  width: 8px;
  border-radius: 50%;
  background-color: #ddd;
  margin: 0 5px;
  cursor: pointer;
}
.dot.active {
  background-color: #333;
}

其中,.img-wrapper 的布局使用了 position: relative;position: absolute; 来实现图片的重叠效果。opacity 属性用于控制图片的透明度,.img-wrapper img.active 表示当前显示的图片。.dots 使用了 display: flex;justify-content: center; 属性来让点点居中展示,.dot.active 表示当前展示的点点。

步骤三:编写JavaScript

最后,我们需要编写JavaScript代码来实现鼠标切换图片的效果。我们可以通过监听 .dot 元素的点击事件来实现,具体可以参考下面的代码示例:

const dots = document.querySelectorAll('.dot');
const images = document.querySelectorAll('.img-wrapper img');

// 监听点点的点击事件
dots.forEach((dot, index) => {
  dot.addEventListener('click', () => {
    // 移除之前的 active 类名
    dots.forEach((dot) => dot.classList.remove('active'));
    images.forEach((image) => image.classList.remove('active'));

    // 给当前点击的点点和图片添加 active 类名
    dot.classList.add('active');
    images[index].classList.add('active');
  })
})

其中,document.querySelectorAll() 方法用于获取所有的 .dot.img-wrapper img 元素,然后我们使用 .forEach() 方法遍历所有的 .dot 元素,给每个元素添加点击事件。当点击某个点点时,我们首先需要移除之前所有元素上的 active 类名,然后给当前点击的点点和对应的图片添加 active 类名。

示例说明

示例1:动态切换壁纸

示例2:切换多组图片(滑动切换)

以上就是JS实现鼠标切换图片(无定时器)的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现鼠标切换图片(无定时器) - Python技术站

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

相关文章

  • 原生JavaScript实现Ajax的方法

    以下是原生JavaScript实现Ajax的方法的完整攻略: 1. Ajax技术简介 Ajax是Asynchronous JavaScript and XML(中文译作“异步JavaScript和XML”)的缩写。它是一种用于在不重新加载整个页面的情况下,通过JavaScript向服务器发送异步HTTP请求并接收响应的技术。Ajax技术可以实现页面的局部更新…

    JavaScript 2023年6月11日
    00
  • JavaScript 获取事件对象的注意点

    JavaScript 获取事件对象的注意点 在 JavaScript 中,可以通过事件处理函数获取事件对象,用来获取事件触发时的相关信息,进而进行一些处理操作。但在获取事件对象时,需要注意一些细节问题。 1. 事件处理函数的参数 事件处理函数的参数,一般是事件对象。不同的浏览器可能会有不同的参数名和获取方式,因此我们需要注意跨浏览器的兼容性问题。 一种常见的…

    JavaScript 2023年5月27日
    00
  • javascript实现点击单选按钮链接转向对应网址的方法

    这里为您讲解一下“javascript实现点击单选按钮链接转向对应网址的方法”的攻略: 1. HTML 结构 首先,需要在 HTML 中添加单选按钮和链接的结构,例如: <input type="radio" name="link" value="https://www.example.com/1&qu…

    JavaScript 2023年6月11日
    00
  • JS身份证信息验证正则表达式

    下面是JS身份证信息验证正则表达式的完整攻略: 什么是身份证号码 身份证号码是我国公民的唯一身份标识,由18位数字和字母组成,其中最后一位可能是数字或字母X,具有以下含义: 前6位是地址码,表示身份证持有人的行政区划代码; 7到14位是出生日期码,表示身份证持有人的出生年月日; 15到17位称为顺序码,表示在同一地址码区域内,对同年、同月、同日出生的人员编定…

    JavaScript 2023年5月19日
    00
  • ES6 Class中实现私有属性的一些方法总结

    下面是关于“ES6 Class中实现私有属性的一些方法总结”的完整攻略: 1. 私有属性的概念 在ES6的Class中,私有属性是指只能在类内部访问,而无法在类外部访问的属性。目前,ES6并不支持直接定义私有属性,但是可以通过一些方法实现类似于私有属性的效果。 2. 实现私有属性的方法 以下是几种实现私有属性的方法: 2.1 在构造函数中定义私有属性 这种方…

    JavaScript 2023年6月10日
    00
  • JavaScript实现计算器的四则运算功能

    实现计算器的四则运算功能,需要掌握一些基本的JavaScript语法。下面是实现计算器的步骤攻略: 1. HTML页面的结构设计 首先需要创建HTML结构,也就是计算器的页面UI布局,建议使用最基础的HTML结构,不使用框架,以便更好的理解JavaScript的实现过程。其中最重要的是操作符和数字按钮,结果展示部分和清除按钮。 示例代码如下: <!DO…

    JavaScript 2023年5月28日
    00
  • 5种 JavaScript 方式实现数组扁平化

    下面是我准备的详细的 “5种 JavaScript 方式实现数组扁平化” 的攻略: 概述 在实际的开发中,数组扁平化是一个经常用到的操作,其中数组扁平化就是将嵌套的多层数组转换成一层数组。本文将会介绍5种 JavaScript 方式实现数组扁平化的具体步骤。 1. 使用 reduce() 方法 该方式使用reduce方法将嵌套的多层数组转换成一层数组。具体步…

    JavaScript 2023年5月27日
    00
  • js 工具类

    /*是否带有小数*/ function isDecimal(strValue ) { var objRegExp= /^\d+\.\d+$/; return objRegExp.test(strValue); } /*校验是否中文名称组成 */ function ischina(str) { var reg=/^[\u4E00-\u9FA5]{2,4}$/;…

    JavaScript 2023年4月25日
    00
合作推广
合作推广
分享本页
返回顶部