JS实现响应鼠标点击动画渐变弹出层效果代码

这里为您详细讲解JS实现响应鼠标点击动画渐变弹出层效果的攻略。

实现思路

实现该效果的基本思路是通过 JavaScript 来控制 CSS 样式的变化,从而达到动画渐变弹出层的效果。

具体实现步骤如下:
1. 创建一个静态 HTML 页面,包含需要点击的按钮和弹出层。
2. 利用 CSS 设置弹出层的初始样式和动画样式。
3. 使用 JavaScript 监听按钮的点击事件,点击时动态修改弹出层样式,展示弹出层。

代码实现

下面为大家提供两份示例代码,其中一个基础版,另一个则是加强版。

基础版代码

HTML

<div class="modal-btn">点击弹出层</div>

<div class="modal-wrapper" id="modalWrapper">
  <div class="modal-inner">
      <p>这是一个弹出层。</p>
      <button class="modal-close">关闭</button>
  </div>
</div>

CSS

.modal-wrapper {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(0,0,0,0.5);
  z-index: 9999;
}

.modal-inner {
  height: 200px;
  width: 400px;
  background-color: #fff;
  margin: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  opacity: 0;
  transition: all 0.6s ease-out;
}

.modal-inner.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.modal-close {
  margin-top: 20px;
}

.modal-btn {
  margin: 50px;
  padding: 20px 40px;
  background-color: #fff;
  color: #222;
  cursor: pointer;
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(0,0,0,0.1);
}

JavaScript

let modalWrapper = document.querySelector('#modalWrapper');
let modalBtn = document.querySelector('.modal-btn');
let modalClose = document.querySelector('.modal-close');

modalBtn.addEventListener('click', function() {
  modalWrapper.style.display = 'block';
  setTimeout(function() {
    modalWrapper.querySelector('.modal-inner').classList.add('show');
  }, 10);
});

modalClose.addEventListener('click', function() {
  modalWrapper.querySelector('.modal-inner').classList.remove('show');
  setTimeout(function() {
    modalWrapper.style.display = 'none';
  }, 300);
});

代码实现原理:通过 onclick 事件执行函数来改变弹出层的样式,实现动画渐变。

加强版

HTML

<div class="modal-wrapper" id="modalWrapper">
  <div class="modal-inner">
    <button class="modal-close">x</button>
    <p>这是一个弹出层。</p>
  </div>
</div>

<button class="btn-primary">点击弹出层</button>

CSS

.modal-wrapper {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  visibility: hidden;
  opacity: 0;
  z-index: 9999;
  transition: opacity 0.5s ease;
}

.modal-wrapper:before {
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  margin-right: -0.25em;
}

.modal-inner {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 500px;
  max-width: 100%;
  padding: 50px;
  text-align: center;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
  transform: translateY(50px);
}

.modal-wrapper:target {
  visibility: visible;
  opacity: 1;
}

.modal-wrapper:target .modal-inner {
  opacity: 1;
  transform: translateY(0px);
}

.modal-wrapper:target .modal-close {
  display: block;
}

.modal-close {
  display: none;
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 2rem;
  font-weight: bold;
  text-decoration: none;
  color: #222;
}

.btn-primary {
  display: block;
  margin: 50px auto;
  padding: 10px 30px;
  border-radius: 4px;
  background-color: #007bff;
  border: solid 1px #007bff;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  transition: background-color 0.3s ease-out;
}

.btn-primary:hover {
  background-color: #0062cc;
}

JavaScript

此处没有 JavaScript。

代码实现原理:通过 CSS 实现了目标选择器用于控制动画效果。

总结

JS实现响应鼠标点击动画渐变弹出层效果的代码基本思路就是通过 JavaScript 控制 CSS 样式的变化,同时代码编写时,需要设置弹出层的初始和动画样式,并使用 onclick 事件处理函数。当然,想要更加完美的实现效果,还可以使用更高级的CSS技巧,通过CSS目标选择器来实现,效果将更加酷炫。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现响应鼠标点击动画渐变弹出层效果代码 - Python技术站

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

相关文章

  • 对javascript基本对象的属性以及方法的实例介绍

    当我们学习JavaScript时,基本对象(primitive data types)是学习的重点之一。JavaScript中的基本对象有六种:字符串、数值、布尔、null、undefined和Symbol。每种基本对象都有自己的属性和方法,了解它们可以加深我们对JavaScript的理解。下面,我们将详细介绍这六种基本对象的属性和方法。 1. 字符串 属性…

    JavaScript 2023年6月11日
    00
  • JavaScript 中的无穷数(Infinity)详解

    那么首先需要明确的是,在 JavaScript 中,Infinity 是指表示正无穷大的数字常量。它比任何数都大,包括自身。同时,JavaScript 也提供了一个负无穷大的常量,即-Infinity。下面,我将会详细讲解 Infinity 在 JavaScript 中的应用及示例。 什么是 Infinity? Infinity 是一个 JavaScript…

    JavaScript 2023年5月27日
    00
  • js实现获取当前时间是本月第几周的方法

    获取当前日期是本月第几周可以使用JavaScript中Date对象中的一些方法来实现。下面是具体的实现方法以及示例说明: 获取当前时间 在JavaScript中通过创建一个Date对象来获取当前的时间,可以使用new关键字和Date构造函数来创建一个Date对象: const now = new Date(); 获取当前时间的月份以及日期 获取当前时间所在的…

    JavaScript 2023年5月27日
    00
  • js判断一个字符串是否包含一个子串的方法

    要判断一个字符串是否包含一个子串,可以使用JavaScript中的indexOf()方法或者includes()方法。 使用indexOf()方法 indexOf()方法可以在一个字符串中查找给定的子串,如果找到了则返回该子串第一次出现的位置,如果没有找到则返回-1。因此,我们可以根据该方法返回的结果来判断该子串是否包含在目标字符串中。 代码示例: let …

    JavaScript 2023年5月28日
    00
  • vue播放flv、m3u8视频流(监控)的方法实例

    针对“vue播放flv、m3u8视频流(监控)的方法实例”,下面是完整的攻略。 一、前置知识 在开始操作前,需要确定以下知识: 熟悉vue.js框架 熟悉flv.js和hls.js这两个第三方库 二、flv.js播放flv视频流 flv.js是一个Flash视频文件格式播放器,支持原生HTML5技术和Adobe Flash技术。下面以播放flv视频流为例,介…

    JavaScript 2023年6月11日
    00
  • jquery JSON的解析方式

    jQuery是一个功能强大的JavaScript库,其中包含了很多方便快捷的方法,其中解析JSON数据是jQuery的一个重点功能。 jQuery JSON解析方式 1. $.parseJSON() 使用$.parseJSON()函数可以将json字符串转换为JavaScript对象。该函数需要一个字符串参数并返回JavaScript对象。示例代码如下: l…

    JavaScript 2023年5月27日
    00
  • JavaScript控制浏览器全屏显示简单示例

    关于“JavaScript控制浏览器全屏显示简单示例”的攻略,可以按照以下步骤进行: 1. HTML页面中添加按钮 首先,在HTML页面中添加一个按钮,以便在单击该按钮时全屏显示页面。可以使用以下代码: <button onclick="toggleFullScreen()">全屏显示</button> 其中onc…

    JavaScript 2023年6月11日
    00
  • Javascrip基础之for循环和数组

    Javascript基础之for循环和数组 在Javascript中,for循环和数组是非常重要的基础知识点,它们可以帮助我们完成很多重要的任务,如循环迭代,数据处理等。本文将详细讲解Javascript中的for循环和数组的用法,帮助大家掌握这些重要的知识点。 for循环 for循环是一种常见的循环方式,可以重复执行指定的代码块。它的基本语法如下: for…

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