加载的案例

devtools/2024/10/18 5:46:55/
htmledit_views">

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>下滑加载历史</title>
    <style>
      body {
        margin: 0;
        font-family: Arial, sans-serif;
      }

      #loadingContainer {
        display: none; /* 默认隐藏 */
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background-color: white;
        text-align: center;
        padding: 10px;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
        z-index: 1000;
      }

      .spinner {
        display: inline-block;
        border: 4px solid rgba(0, 0, 0, 0.1);
        border-radius: 50%;
        border-top: 4px solid #333;
        width: 20px;
        height: 20px;
        animation: spin 1s linear infinite;
      }

      @keyframes spin {
        0% {
          transform: rotate(0deg);
        }
        100% {
          transform: rotate(360deg);
        }
      }

      .loadingText {
        display: inline-block;
        margin-left: 10px;
      }

      #content {
        text-align: center;
        padding: 20px;
        margin-top: 50px; /* 提供顶部空间 */
        font-size: 18px;
        color: #333;
      }
    </style>
  </head>
  <body>
    <div id="loadingContainer">
      <div class="spinner"></div>
      <div class="loadingText">加载中...</div>
    </div>
    <div id="content">
      ----------------下滑展示聊天记录---------------------
    </div>
    <script>
      var swipeUpTriggered = false;
      var touchStartY = null;
      var loadingContainer = document.getElementById("loadingContainer");

      document.addEventListener("touchstart", function (e) {
        if (window.scrollY === 0) {
          touchStartY = e.touches[0].clientY;
        }
      });

      document.addEventListener("touchmove", function (e) {
        if (touchStartY === null) {
          return;
        }

        var touchMoveY = e.touches[0].clientY;

        if (touchMoveY > touchStartY && !swipeUpTriggered) {
          loadingContainer.style.display = "block"; // 显示加载动画
          swipeUpTriggered = true;
        }
      });

      document.addEventListener("touchend", function (e) {
        if (swipeUpTriggered) {
          handleSwipeUp();
          swipeUpTriggered = false;
        }

        touchStartY = null;
      });

      function handleSwipeUp() {
        // 模拟数据加载过程
        setTimeout(function () {
          loadingContainer.style.display = "none"; // 隐藏加载动画
          // 这里可以添加加载数据的代码
        }, 2000); // 假设加载数据需要2秒
      }
    </script>
  </body>
</html>


http://www.ppmy.cn/devtools/98771.html

相关文章

SQL每日一练-0816

今日SQL题&#xff1a;计算每个项目的年度收入增长率 难度系数&#xff1a;&#x1f31f;☆☆☆☆☆☆☆☆☆ 1、题目要求 计算每个项目每年的收入总额&#xff0c;并计算项目收入环比增长率。找出每年收入增长率最高的项目。输出结果显示年份、项目ID、项目名称、项…

海外媒体软文发稿【越南通讯社vnanet】官方媒体发布新闻稿

海外媒体软文发稿【越南通讯社vnanet】官方媒体发布新闻稿 越南通讯社(越南语&#xff1a;Thng tấn x Việt Nam&#xff1b;英语&#xff1a;Vietnam News Agency&#xff0c;简称VNA)&#xff0c;简称“越通社”是越南国家通讯社&#xff0c;始建于1945年9月2日。越通社是越…

如何用Java SpringBoot搭建小区疫情购物系统【技术解析】

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【Vue】自定义组件

系列文章目录 第六章 自定义组件 文章目录 系列文章目录一、定义属性二、自定义事件三、定义v-model四、插槽1. 基本使用&#xff1a;2. 具名插槽&#xff1a; 一、定义属性 有时候我们定义一个组件后&#xff0c;需要让调用者传入参数&#xff0c;那么就可以将参数定义成属性…

初心如磐 持之以恒 | 华清远见西安中心2024年中总结大会圆满结束

2024 年 8 月 15 日&#xff0c;华清远见西安中心以 “初心如磐 持之以恒 破局勇进 逆浪突围” 为主题的年中总结大会盛大召开&#xff0c;全员齐聚一堂&#xff0c;全面回顾和总结了上半年的工作成果&#xff0c;并为下半年的发展制定了清晰的战略规划。 共忆过往 大会伊始&a…

XSS-DOM

文章目录 源码SVG标签Dom-Clobbringtostring 源码 <script>const data decodeURIComponent(location.hash.substr(1));;const root document.createElement(div);root.innerHTML data;// 这里模拟了XSS过滤的过程&#xff0c;方法是移除所有属性&#xff0c;sanitize…

云原生周刊:Kubernetes v1.31 发布

开源项目推荐 Kardinal Kardinal 是一个用于在共享 Kubernetes 集群中创建超轻量级临时开发环境的框架。 Anteon Anteon&#xff08;以前称为 Ddosify&#xff09;是一个开源的、基于 eBPF 的 Kubernetes 监控和性能测试平台。 Kubetui Kubetui 是一个用于监控 Kubernete…

LangGPT结构化提示词

LangGPT是Language For GPT-like LLMs的简称&#xff0c;中文名为结构化提示词&#xff0c;LangGPT是一个帮助你编写高质量提示词的工具&#xff0c;理论基础是我们提出的一套模块化、标准化的提斯提编写方法论——结构化提示词。我们希望揭开提示工程的神秘面纱&#xff0c;为…