Ajax加载菊花loding效果

完整攻略如下:

Ajax加载菊花loding效果

在Ajax通信过程中,由于请求可能需要一定的时间才能完成,因此通常需要在UI上给用户一个等待的提示,以避免出现用户误以为页面卡死的情况。本文将介绍如何通过加载菊花loading效果来解决这一问题。

CSS方式实现loading效果

我们首先通过CSS来实现loading效果:

.loading {
  border: 8px solid #f3f3f3;
  border-top: 8px solid #3498db;
  border-radius: 50%;
  width: 64px;
  height: 64px;
  animation: spin 2s linear infinite;
}

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

以上代码定义了一个名为loading的样式,它将会显示为一个旋转的蓝色圆圈。我们在通信开始前将loading样式添加到指定的元素上,通信完成后再将它移除即可实现loading效果。以下是一个示例:

<!DOCTYPE html>
<html>
<head>
  <style>
    .loading {
      border: 8px solid #f3f3f3;
      border-top: 8px solid #3498db;
      border-radius: 50%;
      width: 64px;
      height: 64px;
      animation: spin 2s linear infinite;
    }

    @keyframes spin {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }
  </style>
</head>
<body>
  <button id="btn">发送请求</button>
  <div id="container"></div>

  <script>
    const container = document.getElementById('container')
    const btn = document.getElementById('btn')
    const loading = document.createElement('div')
    loading.classList.add('loading')

    btn.addEventListener('click', function() {
      container.appendChild(loading)
      fetch('https://api.github.com/users/github')
        .then(response => response.json())
        .then(data => {
          container.removeChild(loading)
          console.log(data)
        })
        .catch(error => {
          container.removeChild(loading)
          console.log(error)
        })
    })
  </script>
</body>
</html>

以上示例中,当用户点击发送请求按钮时,我们向Github API发送一个请求,并在请求开始时通过container.appendChild(loading)将loading元素添加到页面上,请求结束后再通过container.removeChild(loading)将它移除。

jQuery插件实现loading效果

除了CSS外,我们还可以使用第三方插件来实现loading效果,这将更加便捷。以下是一个使用jQuery插件实现loading效果的示例:

首先,我们需要先引入jQuery和loading插件:

<!DOCTYPE html>
<html>
<head>
  <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-loading-overlay/2.1.7/loadingoverlay.min.js"></script>
</head>
<body>
  <button id="btn">发送请求</button>

  <script>
    const btn = document.getElementById('btn')

    btn.addEventListener('click', function() {
      $.LoadingOverlay("show")
      $.ajax({
        url: 'https://api.github.com/users/github',
        success: data => {
          $.LoadingOverlay("hide")
          console.log(data)
        },
        error: error => {
          $.LoadingOverlay("hide")
          console.log(error)
        }
      })
    })
  </script>
</body>
</html>

以上示例中,我们使用了jQuery LoadingOverlay插件,并通过$.LoadingOverlay("show")方法显示loading效果,通过$.LoadingOverlay("hide")方法隐藏loading效果。这样就可以方便地实现loading效果了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ajax加载菊花loding效果 - Python技术站

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

相关文章

  • 阿里巴巴icon图标库

    阿里巴巴icon图标库 阿里巴巴设计团队开发并维护的icon图标库是一个非常优秀的资源,不仅覆盖了业界常用的icon,而且在中国互联网行业中使用率极高。本文将介绍这个icon库的使用方法,并分享我个人在使用过程中的一些经验。 官网介绍 阿里巴巴icon库官方网站为iconfont.cn。在这里,我们可以看到它所提供的图标种类有很多,既包括各行各业的相关ico…

    其他 2023年3月28日
    00
  • 关于Win10下MySQL5.7.17免安装版基本配置教程(图文详解)

    下面就来详细讲解一下“关于Win10下MySQL5.7.17免安装版基本配置教程(图文详解)”的完整攻略。 1. 下载MySQL 首先,我们需要下载MySQL,可以在官网上下载免安装版MySQL:https://dev.mysql.com/downloads/mysql/。 建议下载zip压缩包,然后解压到我们指定的目录,比如:D:\mysql-5.7.17…

    other 2023年6月27日
    00
  • C++中关于[]静态数组和new分配的动态数组的区别分析

    C++中有两种方式来分配数组的内存空间,分别是静态数组和动态数组(通过 new 关键字实现)。它们之间有着一些区别,接下来我将详细讲解它们的区别和各自的特点。 静态数组 静态数组是在编译时就已经分配好了内存空间的一种数组。这种数组的大小和元素数量在编译时就必须确定下来,之后无法进行扩展和修改。静态数组的内存分配和释放都是由编译器自动处理的,不需要我们手动干预…

    other 2023年6月25日
    00
  • linux重启java服务的脚本

    下面是关于Linux重启Java服务的脚本的完整攻略。 1.编写重启脚本 我们可以使用systemctl命令来启动或停止服务,因此可以编写一个脚本,以在需要时重启Java服务。下面是一个示例脚本: #!/bin/bash # 停止Java服务 systemctl stop java.service # 等待服务关闭 sleep 5 # 启动Java服务 sy…

    other 2023年6月27日
    00
  • windows下es安装教程

    Windows下Elasticsearch安装教程的完整攻略 Elasticsearch是一种开源的分布式搜索和分析引擎,可以用于处理大量数据。以下是Windows下Elasticsearch安装教程的完整攻略: 步骤1:下载Elasticsearch 首先,需要从Elasticsearch官网下载Elasticsearch。可以使用以下链接下载最新版本的E…

    other 2023年5月9日
    00
  • 魔兽世界8.0敏锐贼堆什么属性好 敏锐贼属性收益及选择优先级

    魔兽世界8.0敏锐贼属性选择攻略 1. 敏锐贼属性选择的重要性 敏锐贼(Rogue)作为一个近战物理输出职业,属性的选择对于其输出和生存能力有着重要影响。敏锐贼的主要属性选择包括敏捷(Agility)、暴击(Critical Strike)、急速(Haste)、精通(Mastery)和全能(Versatility)。正确的属性选择能够提升敏锐贼的伤害输出和生…

    other 2023年6月28日
    00
  • mysql报2006error错误的解决方法(数据过大)

    以下是关于“MySQL报2006错误的解决方法(数据过大)”的完整攻略: 步骤1:修改MySQL配置文件 首先,需要修改MySQL配置文件,增加max_packet参数的值。可以按照以下步骤进行操作: 找到MySQL配置文件my.cnf或my.ini。 在文件找到[mysqld]部分。 在[mysqld]部分中添加max_allowed_packet=xxx…

    other 2023年5月7日
    00
  • 盘点6款实用的文件对比工具 你都用过吗?

    以下是关于“盘点6款实用的文件对比工具你都用过吗?”的完整攻略,包括基本知识和两个示例说明。 基本知识 文件对比工具是一种用于比较个或多个文件之差异的软件。文件对比工具可以帮助用户找到文件之间的差异,包括文本、二制、图像等文件类型。常见的文件对比工具包括WinMerge、Beyond Compare、DiffMerge等。 以下是6款实用的文件对比工具: W…

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