feat:添加 新的 loading

This commit is contained in:
zhangyu
2022-03-25 10:48:46 +08:00
parent 235411cbe8
commit 7283faa72d
3 changed files with 56 additions and 45 deletions

View File

@@ -8,7 +8,16 @@
.my-loading-box {
height: 100%;
width: 100%;
position: relative !important;
position: absolute;
z-index: 2000;
background-color: rgba(255,255,255,0.9);
margin: 0;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition: opacity 0.3s;
transition: opacity 0.3s;
}
.my-loading{
position: absolute;

View File

@@ -100,7 +100,7 @@ function isEqual (o1, o2) {
}
export const myLoading = {
bind: myLoadingFunction,
update: myLoadingFunction,
update: myLoadingFunctionUpdate,
unbind: function (el, binding) {
const className = binding.arg || 'bars1'
const ds = el.getElementsByClassName(className)[0]
@@ -112,14 +112,15 @@ export const myLoading = {
function myLoadingFunction (el, binding, vnode) {
const className = binding.arg || 'bars1'
const ds = el.getElementsByClassName(className)[0]
if (binding.value) {
if (ds) {
const dsBox = el.getElementsByClassName('my-loading-box')[0]
if (dsBox) {
return
}
// 若果是true创建一个div
const divBox = document.createElement('div')
divBox.setAttribute('class', 'bars1')
divBox.setAttribute('class', 'my-loading-box')
const div = document.createElement('div')
div.setAttribute('class', className + ' my-loading')
div.style.textAlign = 'center'
if (binding.modifiers.scaleMin) {
div.style.transform = 'scale(0.5)'
@@ -145,24 +146,25 @@ function myLoadingFunction (el, binding, vnode) {
// div内部加入内容
// div.innerHTML = '加载中...'
// el 元素设置相对定位 div设置绝对定位
console.log(el.className)
const elClassname = el.className.split(' ')
console.log(elClassname)
myLoadingFunctionUpdate(el, binding, vnode)
}
function myLoadingFunctionUpdate (el, binding, vnode) {
const divBox = el.getElementsByClassName('my-loading-box')[0]
let elClassname = el.className.split(' ')
if (binding.value) {
divBox.style.display = 'block'
if (elClassname.indexOf('my-loading-parent--relative') === -1) {
elClassname.push('my-loading-parent--relative')
el.setAttribute('class', elClassname.join(' '))
}
// 设置绝对定位
div.setAttribute('class', className)
} else {
divBox.style.display = 'none'
// 去掉div 去掉样式 去掉定位
if (ds) {
el.removeChild(ds)
if (elClassname.indexOf('my-loading-parent--relative') !== -1) {
elClassname = elClassname.filter(item => item !== 'my-loading-parent--relative')
el.setAttribute('class', elClassname.join(' '))
}
}
}
function myLoadingFunctionUpdate(el, binding, vnode) {
}
export const cancelWithChange = {
bind: function (el, binding) {

View File

@@ -47,7 +47,7 @@ export default {
mounted () {
// setInterval(() => {
// this.myLoading = !this.myLoading
// }, 1000)
// }, 3000)
},
destroyed () {
localStorage.removeItem('moduleProjectId')