<i id='5eDvc'><tr id='5eDvc'><dt id='5eDvc'><q id='5eDvc'><span id='5eDvc'><b id='5eDvc'><form id='5eDvc'><ins id='5eDvc'></ins><ul id='5eDvc'></ul><sub id='5eDvc'></sub></form><legend id='5eDvc'></legend><bdo id='5eDvc'><pre id='5eDvc'><center id='5eDvc'></center></pre></bdo></b><th id='5eDvc'></th></span></q></dt></tr></i><div id='5eDvc'><tfoot id='5eDvc'></tfoot><dl id='5eDvc'><fieldset id='5eDvc'></fieldset></dl></div>

<small id='5eDvc'></small><noframes id='5eDvc'>

    <legend id='5eDvc'><style id='5eDvc'><dir id='5eDvc'><q id='5eDvc'></q></dir></style></legend>
    • <bdo id='5eDvc'></bdo><ul id='5eDvc'></ul>
      <tfoot id='5eDvc'></tfoot>

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

      时间:2023-12-08
        <tbody id='itwE0'></tbody>
      <i id='itwE0'><tr id='itwE0'><dt id='itwE0'><q id='itwE0'><span id='itwE0'><b id='itwE0'><form id='itwE0'><ins id='itwE0'></ins><ul id='itwE0'></ul><sub id='itwE0'></sub></form><legend id='itwE0'></legend><bdo id='itwE0'><pre id='itwE0'><center id='itwE0'></center></pre></bdo></b><th id='itwE0'></th></span></q></dt></tr></i><div id='itwE0'><tfoot id='itwE0'></tfoot><dl id='itwE0'><fieldset id='itwE0'></fieldset></dl></div>
      1. <small id='itwE0'></small><noframes id='itwE0'>

            <bdo id='itwE0'></bdo><ul id='itwE0'></ul>

              1. <legend id='itwE0'><style id='itwE0'><dir id='itwE0'><q id='itwE0'></q></dir></style></legend>

                <tfoot id='itwE0'></tfoot>
              2. 这里为您详细讲解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尾调用优化的实现 下一篇:JavaScript编码风格指南(中文版)

                相关文章

                    • <bdo id='BOqfy'></bdo><ul id='BOqfy'></ul>
                    <tfoot id='BOqfy'></tfoot>
                  1. <i id='BOqfy'><tr id='BOqfy'><dt id='BOqfy'><q id='BOqfy'><span id='BOqfy'><b id='BOqfy'><form id='BOqfy'><ins id='BOqfy'></ins><ul id='BOqfy'></ul><sub id='BOqfy'></sub></form><legend id='BOqfy'></legend><bdo id='BOqfy'><pre id='BOqfy'><center id='BOqfy'></center></pre></bdo></b><th id='BOqfy'></th></span></q></dt></tr></i><div id='BOqfy'><tfoot id='BOqfy'></tfoot><dl id='BOqfy'><fieldset id='BOqfy'></fieldset></dl></div>
                  2. <legend id='BOqfy'><style id='BOqfy'><dir id='BOqfy'><q id='BOqfy'></q></dir></style></legend>

                    <small id='BOqfy'></small><noframes id='BOqfy'>