• 用户等待 显示加载中样式


    有的时候,我们在请求后台执行任务的时候。需要用户等待后台处理,如果没提示的时候,会给用户体验很差的感觉,几年介绍一个jquery的一个插件。

    官网:http://spin.js.org

    完整的例子:

    html:

    1 <!--loading-->
    2 <div id='foo'></div>
    3 <div id='xx'></div>

     js:通过click事件,经过ajax请求,请求到后台。在这段时间内显示我们请求中的样式:

     1 <script src="/static/trouble_run/js/spin.min.js"></script>
     2 function troub_stop(){
     3      var task_id='{{task_id}}';
     4      var opts = {
     5                 lines: 9, // The number of lines to draw
     6                 length: 0, // The length of each line
     7                  20, // The line thickness
     8                 radius: 25, // The radius of the inner circle
     9                 corners: 1, // Corner roundness (0..1)
    10                 rotate: 0, // The rotation offset
    11                 color: '#FF4500', // #rgb or #rrggbb
    12                 speed: 1, // Rounds per second
    13                 trail: 60, // Afterglow percentage
    14                 shadow: false, // Whether to render a shadow
    15                 hwaccel: false, // Whether to use hardware acceleration
    16                 className: 'spinner', // The CSS class to assign to the spinner
    17                 zIndex: 2e9, // The z-index (defaults to 2000000000)
    18                 top: '25%', // Top position relative to parent in px
    19                 left: '50%' // Left position relative to parent in px
    20             };
    21      $("#xx").css("display","block");
    22      var target = document.getElementById('foo');
    23      var spinner = new Spinner(opts).spin(target);
    24      $.ajax(
    25            {
    26            url:'/close_trouble/',
    27            type:'POST',
    28            dataType:'json',
    29            data:{'task_id':task_id},
    30            success:function(callback){
    31                     console.log(callback) 
    32                    if (callback['status']){
    33                        void 0
    34                        }else{
    35                             $("#xx").css("display","none");
    36                             spinner.spin();
    37                            $('#myModal').modal('show');
    38                           $('.modal-body label').text(callback['msg']) 
    39                             }
    40               }
    41             }
    42 
    43            )  
    44 
    45 
    46 
    47       }

     效果:

    其中我们通过:

     1      var opts = {
     2                 lines: 9, // The number of lines to draw
     3                 length: 0, // The length of each line
     4                  20, // The line thickness
     5                 radius: 25, // The radius of the inner circle
     6                 corners: 1, // Corner roundness (0..1)
     7                 rotate: 0, // The rotation offset
     8                 color: '#FF4500', // #rgb or #rrggbb
     9                 speed: 1, // Rounds per second
    10                 trail: 60, // Afterglow percentage
    11                 shadow: false, // Whether to render a shadow
    12                 hwaccel: false, // Whether to use hardware acceleration
    13                 className: 'spinner', // The CSS class to assign to the spinner
    14                 zIndex: 2e9, // The z-index (defaults to 2000000000)
    15                 top: '25%', // Top position relative to parent in px
    16                 left: '50%' // Left position relative to parent in px
    17             };

    来定义 我们显示的加载图样的样式。

    其中我们定义了遮罩层:

     1 #xx{
     2     display: none;
     3     height: 100%;
     4      100%;
     5     position: fixed;
     6     *position: absolute;
     7     *height: 1380px;
     8     background: black;
     9     top:0;
    10     left: 0;
    11     opacity:0.4;
    12     }

     然后通过:

    1      $("#xx").css("display","block");
    2      var target = document.getElementById('foo');
    3      var spinner = new Spinner(opts).spin(target);

    显示遮罩层和加载中图样。当后端请求到数据之后,我们去掉遮罩层和加载样式:

    1 $("#xx").css("display","none");
    2 spinner.spin();

    这样就可以自定义我们的加载样式。很简单!

  • 相关阅读:
    精灵点点基础教程1 -- 下载与安装
    技术人员搞公司还是省省吧
    企业级自定义表单引擎解决方案(二)--架构及核心模块设计
    企业级自定义表单引擎解决方案(一)--总体介绍
    .net core quartz job作业调度管理组件
    NPOI读写Excel组件封装Excel导入导出组件
    企业级工作流解决方案(十七)--工作流--工作流插件模型
    企业级工作流解决方案(十六)--工作流--工作流实体模型
    企业级工作流解决方案(十五)--集成Abp和ng-alain--Abp其他改造
    企业级工作流解决方案(十四)--集成Abp和ng-alain--自动化脚本
  • 原文地址:https://www.cnblogs.com/evilliu/p/7086404.html
Copyright © 2020-2023  润新知