上图不上种,菊花万人捅:
loading.js:
{
// 如果页面有loading则不继续执行
if (document.querySelector('#vue-loading')) return
// 1、创建构造器,定义loading模板
let LoadingTip = Vue.extend({
template: `
`
})
// 2、创建实例,挂载到文档以后的地方
let tpl = new LoadingTip().$mount().$el
// 3、把创建的实例添加到body中
document.body.appendChild(tpl)
// 阻止遮罩滑动
document.querySelector('#vue-loading').addEventListener('touchmove',function (e) {
e.stopPropagation()
e.preventDefault()
})
Loading.installed = true
}
Vue.prototype.$loading.hide = () => {
let tpl = document.querySelector('#vue-loading')
document.body.removeChild(tpl)
}
}
export default Loading
loading.css:
Box-shadow: 1em -0.5em rgba(225,20,98,0.75),-1em 0.5em rgba(111,202,220,0.75);
}
35% {
width: 2.5em;
Box-shadow: 0 -0.5em rgba(225,0 0.5em rgba(111,0.75);
}
70% {
width: 0.5em;
Box-shadow: -1em -0.5em rgba(225,1em 0.5em rgba(111,0.75);
}
100% {
Box-shadow: 1em -0.5em rgba(225,0.75);
}
}
@keyframes after {
0% {
height: 0.5em;
Box-shadow: 0.5em 1em rgba(61,184,143,-0.5em -1em rgba(233,169,32,0.75);
}
35% {
height: 2.5em;
Box-shadow: 0.5em 0 rgba(61,-0.5em 0 rgba(233,0.75);
}
70% {
height: 0.5em;
Box-shadow: 0.5em -1em rgba(61,-0.5em 1em rgba(233,0.75);
}
100% {
Box-shadow: 0.5em 1em rgba(61,0.75);
}
}
/**
* Attempt to center the whole thing!
*/
html,body {
height: 100%;
}
.loader {
position: absolute;
top: calc(50% - 1.25em);
left: calc(50% - 1.25em);
}
这样就可以直接在组件里面手动调用啦!
调用方法: this.$loading.show(),this.$loading.hide()
因为这个项目暂时规模很小,就只有注册功能,我直接把调用写在axios请求拦截器里面,每次请求和请求结束都会调用loading,这样就不用在页面里面手动调用啦。
总结
以上所述是小编给大家介绍的Vue 全局loading组件。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。
原文链接:https://www.f2er.com/vue/32106.html