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日

相关文章

  • js实现文字闪烁特效的方法

    下面是JS实现文字闪烁特效的方法的完整攻略: 方法一:用CSS实现文字闪烁特效 1. 在CSS中设置不透明度为0和1的关键帧动画 @keyframes blink { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } } 2. 将带有文字的HTML元素定义为闪烁动画 .blink { an…

    JavaScript 2023年6月11日
    00
  • js与jquery正则验证电子邮箱、手机号、邮政编码的方法

    作为网站的作者,为了保证用户提交的数据有效和安全,我们需要对输入的电子邮箱、手机号和邮政编码进行正则验证。JavaScript和jQuery都可以进行正则验证,下面是针对这三种常见输入的完整攻略: 1. 电子邮箱验证 正则表达式 电子邮箱的验证需要用到正则表达式,下面是一个常用的正则表达式: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-]…

    JavaScript 2023年6月1日
    00
  • jscript与vbscript 操作XML元素属性的代码

    为了操作 XML 元素属性,我们需要使用 XML DOM 对象。在 JavaScript 中,我们可以使用 jscript 或者 vbscript 来访问和操作 XML DOM。 XML DOM 对象是一个树结构,由节点组成。每个节点都有一个节点类型,例如元素节点、属性节点、文本节点等。我们可以通过节点的属性和方法来访问和操作节点的内容。 下面是使用 jsc…

    JavaScript 2023年6月10日
    00
  • JavaScript中检测数据类型的四种方法

    当我们在进行 JavaScript 的开发时,必须经常检测数据类型以确保代码的正确性。本文将介绍 JavaScript 中检测数据类型的四种方法。 方法一:typeof 操作符 typeof 操作符用于检测变量的数据类型,返回一个字符串,表明该变量的数据类型。 console.log(typeof ‘Hello World’); // string cons…

    JavaScript 2023年6月10日
    00
  • .NET异步编程模式的三种类型介绍

    当今的软件开发需要在面对并发的任务时能够高效地处理数据和事件。异步编程模式是一种提高程序效率和性能的方式,尤其是针对I/O密集型的应用程序。在.NET平台上,异步编程模式被广泛使用,并且有多种实现方式,下面我们将介绍.NET异步编程模式的三种类型。 1. Async/Await模式 异步编程的目标是提高程序的效率,通过让程序在某个任务执行的同时可以执行其他任…

    JavaScript 2023年5月28日
    00
  • JavaScript使用DeviceOne开发实战(二) 生成调试安装包

    JavaScript使用DeviceOne开发实战(二) 生成调试安装包 背景介绍 DeviceOne是一个使用JavaScript编写原生App的开发平台,支持Android和iOS两个平台。生成调试安装包是开发者在DeviceOne平台上完成App开发后,进行测试、调试以及安装到真机进行更全面测试的关键步骤。 步骤说明 2.1 打开DeviceOne I…

    JavaScript 2023年6月11日
    00
  • Javascript Date toTimeString() 方法

    以下是关于JavaScript Date对象的toTimeString()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的toTimeString()方法 JavaScript的toTimeString()方法返回表示日期时间部分的字符串,该字符串格式为本地时间。该方法不接受任何参数。 下面是对象的toTimeString()方法的例…

    JavaScript 2023年5月11日
    00
  • Web Components实现类Element UI中的Card卡片

    Web Components是一种新的Web开发标准,提供了一种封装和组合Web页面元素的方式。其中,类Element UI中的Card卡片是一种常用的UI组件,本文将详细讲解如何使用Web Components来实现这种卡片。 一、创建Card组件原型 首先,我们需要创建一个Card组件原型,可以使用ES6的类来实现: class Card extends…

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