JS实现简单易用的手机端浮动窗口显示效果

要实现手机端浮动弹窗的显示效果,可以借助JS的一些特性来完成。下面是具体的攻略:

1. HTML结构

先搭建好基本的HTML结构,包括页面的顶部和底部,以及一个主要内容区域。其中,顶部和底部可以用固定定位来实现,主要内容区域则需要设定一个合适的高度,使得页面高度能够适配不同的设备屏幕尺寸。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>浮动窗口效果演示</title>
    <style>
      /* 顶部固定定位 */
      .header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 50px;
        background-color: #333;
        color: #fff;
        text-align: center;
        line-height: 50px;
        z-index: 2;
      }
      /* 底部固定定位 */
      .footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 50px;
        background-color: #333;
        color: #fff;
        text-align: center;
        line-height: 50px;
        z-index: 2;
      }
      /* 主要内容区域 */
      .content {
        height: 1000px;
        padding-top: 100px;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <div class="header">浮动窗口效果演示</div>
    <div class="content">
      <h2>这里是主要内容区域</h2>
    </div>
    <div class="footer">版权所有 © 2021 浮动窗口效果演示</div>
  </body>
</html>

2. JS实现浮动窗口

在页面底部添加一个固定位置的按钮,点击按钮后可以显示一个浮动窗口。具体实现方法如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>浮动窗口效果演示</title>
    <style>
      /* 顶部固定定位 */
      .header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 50px;
        background-color: #333;
        color: #fff;
        text-align: center;
        line-height: 50px;
        z-index: 2;
      }
      /* 底部固定定位 */
      .footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 50px;
        background-color: #333;
        color: #fff;
        text-align: center;
        line-height: 50px;
        z-index: 2;
      }
      /* 主要内容区域 */
      .content {
        height: 1000px;
        padding-top: 100px;
        text-align: center;
      }
      /* 浮动窗口样式 */
      .popup {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 80%;
        max-width: 400px;
        padding: 20px;
        background-color: #fff;
        border-radius: 5px;
        box-shadow: 0 0 10px rgba(0,0,0,.3);
        z-index: 3;
        display: none;
      }
      /* 遮罩层样式 */
      .mask {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0,0,0,.5);
        z-index: 2;
        display: none;
      }
    </style>
  </head>
  <body>
    <div class="header">浮动窗口效果演示</div>
    <div class="content">
      <h2>这里是主要内容区域</h2>
    </div>
    <div class="footer">
      <button id="showPopup">点击显示浮动窗口</button>
    </div>
    <div class="mask"></div>
    <div class="popup">
      <h2>这里是浮动窗口标题</h2>
      <p>这里是浮动窗口内容</p>
      <button id="hidePopup">关闭窗口</button>
    </div>
    <script>
      // 获取元素
      var showPopupBtn = document.querySelector('#showPopup');
      var hidePopupBtn = document.querySelector('#hidePopup');
      var mask = document.querySelector('.mask');
      var popup = document.querySelector('.popup');
      // 点击按钮显示浮动窗口
      showPopupBtn.onclick = function() {
        mask.style.display = 'block';
        popup.style.display = 'block';
      };
      // 点击关闭按钮关闭浮动窗口
      hidePopupBtn.onclick = function() {
        mask.style.display = 'none';
        popup.style.display = 'none';
      };
    </script>
  </body>
</html>

代码中通过JS获取到四个元素,分别是显示浮动窗口的按钮 #showPopup、关闭浮动窗口的按钮 #hidePopup、遮罩层 .mask、浮动窗口 .popup。然后在点击显示按钮后,设置遮罩层和浮动窗口的 display 属性为 block,使它们显示出来。点击关闭按钮后,再把它们的 display 属性设置为 none,使它们消失不见。

3. 通过监听屏幕滚动事件实现固定显示

如果想要让浮动窗口始终固定在页面的某一个位置上,可以通过监听屏幕滚动事件来实现,代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>浮动窗口效果演示</title>
    <style>
      /* 顶部固定定位 */
      .header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 50px;
        background-color: #333;
        color: #fff;
        text-align: center;
        line-height: 50px;
        z-index: 2;
      }
      /* 底部固定定位 */
      .footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 50px;
        background-color: #333;
        color: #fff;
        text-align: center;
        line-height: 50px;
        z-index: 2;
      }
      /* 主要内容区域 */
      .content {
        height: 1000px;
        padding-top: 100px;
        text-align: center;
      }
      /* 浮动窗口样式 */
      .popup {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 80%;
        max-width: 400px;
        padding: 20px;
        background-color: #fff;
        border-radius: 5px;
        box-shadow: 0 0 10px rgba(0,0,0,.3);
        z-index: 3;
        display: none;
      }
      /* 遮罩层样式 */
      .mask {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0,0,0,.5);
        z-index: 2;
        display: none;
      }
      /* 固定样式 */
      .fixed {
        position: fixed;
        top: 50%;
        right: 20px;
        transform: translateY(-50%);
        z-index: 1;
        display: none;
      }
    </style>
  </head>
  <body>
    <div class="header">浮动窗口效果演示</div>
    <div class="content">
      <h2>这里是主要内容区域</h2>
    </div>
    <div class="footer">
      <button id="showPopup">点击显示浮动窗口</button>
    </div>
    <div class="mask"></div>
    <div class="popup">
      <h2>这里是浮动窗口标题</h2>
      <p>这里是浮动窗口内容</p>
      <button id="hidePopup">关闭窗口</button>
    </div>
    <div class="fixed">
      <button id="backToTop">返回顶部</button>
    </div>
    <script>
      // 获取元素
      var showPopupBtn = document.querySelector('#showPopup');
      var hidePopupBtn = document.querySelector('#hidePopup');
      var mask = document.querySelector('.mask');
      var popup = document.querySelector('.popup');
      var fixedBtn = document.querySelector('.fixed');
      var backToTopBtn = document.querySelector('#backToTop');
      // 点击按钮显示浮动窗口
      showPopupBtn.onclick = function() {
        mask.style.display = 'block';
        popup.style.display = 'block';
      };
      // 点击关闭按钮关闭浮动窗口
      hidePopupBtn.onclick = function() {
        mask.style.display = 'none';
        popup.style.display = 'none';
      };
      // 监听屏幕滚动事件
      window.onscroll = function() {
        // 如果已经向下滚动一定距离,显示返回顶部按钮
        if (document.documentElement.scrollTop > 100) {
          fixedBtn.style.display = 'block';
        } else {
          fixedBtn.style.display = 'none';
        }
      };
      // 点击返回顶部按钮滚动页面到顶部
      backToTopBtn.onclick = function() {
        document.documentElement.scrollTop = 0;
      }
    </script>
  </body>
</html>

代码中新增了一个返回顶部的按钮,按钮也是通过监听滚动事件来实现。当用户向下滚动 100 像素时,返回顶部的按钮出现在右下角。点击该按钮后,页面会平滑地滚动到顶部。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现简单易用的手机端浮动窗口显示效果 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 如何使用jQuery获得一个元素的字体大小

    要使用jQuery获取一个元素的字体大小,可以使用css()方法。下面是一个完整攻略,包括两个示例说明。 步骤1:创建HTML和CSS 首先,我们创建一个HTML和CSS,以便在页面中显示一个元素。下面是一个示例HTML和CSS: <!DOCTYPE html> <html> <head> <title>jQu…

    jquery 2023年5月9日
    00
  • 如何使用jQuery Mobile制作一个基本标记按钮

    以下是使用jQuery Mobile制作一个基本标记按钮的完整攻略,包含两个示例说明: 步骤1:引入jQuery Mobile库 在使用jQuery Mobile之前,需要先在HTML文档引入jQuery库和jQuery Mobile库。可以通过以下方式引入: <!– 引入jQuery库 –> <script src="htt…

    jquery 2023年5月9日
    00
  • jQuery Ajax()方法使用指南

    jQuery Ajax()方法使用指南 一、什么是Ajax? Ajax(Asynchronous JavaScript and XML)即异步JavaScript和XML技术,是一种创建快速动态网页的技术。Ajax通过在后台与服务器交换数据,实现无需请求刷新整个页面的情况下更新部分网页内容的技术。 二、jQuery Ajax()方法介绍 jQuery中的aj…

    jquery 2023年5月28日
    00
  • 如何用JQuery计算一个字符串中的字数

    当我们需要在页面上显示一个输入框的字数时,使用JQuery可以很方便地实现。下面是计算输入框中字符数的完整攻略: 步骤1:在HTML中创建输入框 首先在HTML中创建一个输入框,可以是textarea或input标签,例如: <textarea id="myTextarea"></textarea> 步骤2:创建计…

    jquery 2023年5月12日
    00
  • jQuery函数的等价原生函数代码示例

    jQuery是一个高效、简化的JavaScript库,它在处理DOM操作、动画效果、事件处理等方面有着出色的表现。然而,如果你想要更深入地理解这些操作具体是如何实现的,那么就需要学习一些等价的原生JavaScript函数代码。下面,我们将提供一些示例说明、讲解jQuery函数等价原生函数代码的完整攻略。 示例1:获取页面元素的高度 jQuery示例代码 va…

    jquery 2023年5月27日
    00
  • 在ASP.NET 2.0中操作数据之十九:给编辑和新增界面增加验证控件

    在ASP.NET网站中,为了让用户输入的数据更加规范和准确,我们需要给编辑和新增界面增加验证控件。ASP.NET 2.0提供了一些内置的验证控件供我们使用,例如RequiredFieldValidator、RegularExpressionValidator、CompareValidator等。下面是给编辑和新增界面增加验证控件的完整攻略: 1. 在ASP.…

    jquery 2023年5月27日
    00
  • JQuery中Ajax的操作完整例子

    JQuery中Ajax的操作分为发送请求和接收响应两部分。下面将通过一个完整的例子来讲解。 示例1:发送GET请求并接收响应 在HTML文件中添加如下内容: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>A…

    jquery 2023年5月27日
    00
  • jQuery过滤选择器详解

    jQuery 过滤选择器详解 在使用 jQuery 时,我们可以使用选择器来选择一个或多个元素,但在实际应用中,我们常常需要更精细的选择,来更快捷准确地获取目标元素,这时候就需要用到 jQuery 提供的过滤选择器。 基本语法 过滤选择器基本语法如下: $(":filter") 其中,filter 表示过滤器,可以是各种不同的字符串。 常…

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