spin.js —— Ajax Loading效果

我们在做Ajax 异步请求的时候,一般都会利用一个动态的 Gif 小图片来制作一个Ajax Loading ,以便增加用户体验。

今天在网上发现了一个 Spin.js ,该 js 脚本压缩后5k,可以不用任何图片,任何外部的CSS样式,就可以创建一个Ajax Loading 指示器,且兼容以下浏览器:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Spin.js 的在线设计、演示及下载地址为http://fgnass.github.io/spin.js/

Spin.js 用法极其的简单:

显示 spinner

//target为显示spiner的父容器
var target=document.getElementById("id")
spinner.spin(target);

隐藏 spinner
 spinner.spin();

一个简单完整的例子: 

复制代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Ajax Loading Demo</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <!--原版压缩spin.js-->
    <script type="text/javascript" src="js/spin.min.js" ></script>   
    <link href="css/index.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">        
        //opts 可从网站在线制作
        var opts = {            
            lines: 13, // 花瓣数目
            length: 20, // 花瓣长度
            width: 10, // 花瓣宽度
            radius: 30, // 花瓣距中心半径
            corners: 1, // 花瓣圆滑度 (0-1)
            rotate: 0, // 花瓣旋转角度
            direction: 1, // 花瓣旋转方向 1: 顺时针, -1: 逆时针
            color: '#5882FA', // 花瓣颜色
            speed: 1, // 花瓣旋转速度
            trail: 60, // 花瓣旋转时的拖影(百分比)
            shadow: false, // 花瓣是否显示阴影
            hwaccel: false, //spinner 是否启用硬件加速及高速旋转            
            className: 'spinner', // spinner css 样式名称
            zIndex: 2e9, // spinner的z轴 (默认是2000000000)
            top: 'auto', // spinner 相对父容器Top定位 单位 px
            left: 'auto'// spinner 相对父容器Left定位 单位 px
        };

        var spinner = new Spinner(opts);

        $(document).ready(function () {
            $("#btnRequest").bind("click", function () {
                ajaxRequestData();
            })
        })
        
        function ajaxRequestData(){
            $.ajax({
                type: "POST",
                timeout: 10000,
                dataType: "text",
                url: "Index.ashx",
                beforeSend: function () {
                    //异步请求时spinner出现
                    $("#firstDiv").text("");
                    var target = $("#firstDiv").get(0);
                    spinner.spin(target);                    
                },
                success: function (msg) {
                    $("#firstDiv").text(msg);
                    //关闭spinner  
                    spinner.spin();
                },
                error: function (e, jqxhr, settings, exception) {
                    $("#firstDiv").text("请求发生错误...");
                    //关闭spinner  
                    spinner.spin();
                }
            })
        }
    </script>
</head>
<body>
    <div id="firstDiv">
    </div>
    <div id="secondDiv">
        <input id="btnRequest" type="button" value="请求数据" class="btnStyle" />
    </div>
</body>
</html>
复制代码

小贴士:

(1)Spin.js 的扩展性也是很强的,可以下载其源码进行修改和扩展

(2)我们可以进入链接页面中,动态设置样式自动生成样式的配置脚本

备注:

在线生成loading图片:http://preloaders.net

纯css和html实现loading:http://cssload.net

posted @   掉进书洞里的猫  阅读(520)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2015-01-13 C#秘密武器之异步编程
点击右上角即可分享
微信分享提示