为NProgress增加模态层,更完美的应用于复杂网页的细长进度条

NProgress是一款在网页顶部添加细长进度条的工具,非常轻巧,使用起来也非常便捷,灵感来源于Google, YouTube。我是在用github时发现这一特性的,就想应用到我的网站上,经过层层筛选找到了NProgress,感觉非常棒,另外我又为NProgress添加了模态层,因为我不希望一个请求响应未结束前,当前页面再去请求服务。

一、组件下载

官网http://ricostacruz.com/nprogress/

也可以看到演示效果,我就不再贴我网站的效果图了,就是多了一层模态。

二、应用

1、导入组件

<link type="text/css" rel="stylesheet" href="${ctx}/components/nprogress/nprogress.css" />
<script type="text/javascript" src="${ctx}/components/nprogress/nprogress.js"></script>

2、使用组件

// 配置
NProgress.configure({
    // 不显示转动的小圆圈
    showSpinner : false
});

// 将模态层添加到body中
var ajaxbg = $(‘<div id="background" class="background"></div>‘).appendTo("body");
ajaxbg.hide();

// 页面绑定ajaxStart、ajaxStop方法
$(document).ajaxStart(function() {
    // 启动
    NProgress.start();

    // 如果存在模态框ajax,则将背景层添加到当前模态框上
    if ($("#pop_ajax_dialog").length > 0) {
        $("#pop_ajax_dialog").append(ajaxbg);
    } else {
        $("body").append(ajaxbg);
    }
    // 模态层
    ajaxbg.show();
}).ajaxStop(function() {
    // 结束、隐藏模态层
    NProgress.done();
    ajaxbg.hide();
});
  1. 我的项目中有模态框,所以弹出模态框的上面应用模态层的话,就将模态层置于弹出模态框的上面,而不再是body上。
  2. ajaxStart、ajaxStop 两个方法就可以实现请求的进度条的开始和结束。

模态层的样式

.background { display:block; width:100%; height:100%; opacity:0.4; filter:alpha(opacity=40); background:#FFF; position:absolute; top:0; left:0; z-index:2000;}


使用起来非常简单,最关键的在于找到合理的方案,而这篇博文就可以为你提供解决方案。

时间: 2024-10-08 11:13:44

为NProgress增加模态层,更完美的应用于复杂网页的细长进度条的相关文章

在vue项目中使用Nprogress.js进度条

NProgress是一款在网页顶部添加细长进度条的工具,非常轻巧,使用起来也非常便捷,灵感来源于Google, YouTube. 1.安装 $ npm install --save nprogress 或者 $ yarn add nprogress //用法 NProgress.start(); NProgress.done(); 2.使用 router.js //导入 import NProgress from 'nprogress' import 'nprogress/nprogress.c

yii2 增加逻辑层

现在的框架基本是mvc模式了,比如thinkphp,ci,yii框架等等 由于项目做大,逻辑复杂之后,简单的mvc模式已经不能满足需求,总有那么几个model在不断的变大膨胀,这些model之间产生了网状的相互依赖关系.维护起来比较麻烦. 于是我们就需要把这个或者这些膨胀了的model解耦出来. 于是我们考虑增加一个逻辑层Logic. 首先,我们有一个已经安装好的yii项目.没有安装的可以参考我之前写的yii2 高级模版安装 安装完成之后 主要有以下几个目录 backend common con

js+css实现模态层效果

在做web前端的时候,有些时候会涉及到模态层,在此提供一种实现思路,希望对大家有用.先贴效果吧: 模态层效果 下面说说在写模态层的时候的思路:通过可配置的参数width,height,title以及content用来设定弹出的信息框显示的内容,并通过可配置参数container用来设定模态层显示的区域.思路很简单,主要是一些css样式和js处理,详见源码: modal.css html,body{ font-size: 12px; font-family: "微软雅黑"; } .mod

openlayers入门开发系列之地图模态层篇

本篇的重点内容是为了到达自己想要的区域高亮效果,利用openlayers结合turf.js实现地图模态层功能,效果图如下: 实现思路 利用turf.js提供的difference相差函数,计算最大四至和裁剪区域的差值,这里的最大四至即:(-180,-90,180,90),由于底图是墨卡托投影坐标系的,所以我的代码实现过程中把经纬度转换墨卡托投影坐标:裁剪区域就是需要高亮的多边形,我这里是嘉兴市区域. 界面设计 //地图模态层 "<div style='height:25px;backgro

模态框的理解 ,jQ: loading,进度条, 省级联动 ,富文本编辑器 表单验证 插件

模态框: 打开一个弹框 不关闭它就不能做框外的操作 必须关闭或弹出另外的弹框 加载延迟loading + 进度条只要有请求 就处理一下监控ajax 全局事件jquery: 开始     $('#box').ajaxStart() 多个ajax共享一个Start 发送 .ajaxSend() 成功 .ajaxSuccess() 完成 . ajaxComplete() 完成后有错误 .ajaxError() 停止 .ajaxStop()多个ajax共享一个Stop Nprogress:进度条引入 c

cordova加载层、进度条、文件选择插件

在做cordova项目的时候,感觉应用的响应速度跟原生应用比相差甚远,一个主要问题就是如加载层.进度条等弹出对话框的效率不行.毕竟项目中的这些弹框都是用dom拼成的,dom的渲染效率和原生控件比起来慢也是正常的.为了能够让应用尽可能的接近原生应用的效果,我业余时间做了一套对话框插件,使用后应用的使用体验立马有了很大的提升.兼容ios和安卓平台.插件包括加载层.进度条.文件选择.项目已经放到了github,有兴趣的小伙伴可以下载试一试. 插件只支持cordova5.0及以上版本,初始化如下: co

C#.NET中使用BackgroundWorker在模态对话框中显示进度条

这里是一个示例,其中展示了如何使用Backgroundworker对象在模态对话框中显示后台操作的实时进度条. 首先是主窗体代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

div模态层示例

<!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" style="height: 100%;"> <head> &l

web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开

https://blog.csdn.net/zgsdzczh/article/details/79744838 <style type="text/css">   * {   margin: 0;   padding: 0;   }     a {   text-decoration: none;   }     img {   max-width: 100%;   height: auto;   }     .weixin-tip {   display: none;