Commit 2dd085b4 authored by Leopoldthecoder's avatar Leopoldthecoder

retire transitionend

parent 813de473
...@@ -36,8 +36,7 @@ exports.install = Vue => { ...@@ -36,8 +36,7 @@ exports.install = Vue => {
}); });
} else { } else {
if (el.domVisible) { if (el.domVisible) {
const destroyElement = function() { el.instance.$on('after-leave', _ => {
el.mask.removeEventListener('transitionend', destroyElement);
el.domVisible = false; el.domVisible = false;
if (binding.modifiers.fullscreen && el.originalOverflow !== 'hidden') { if (binding.modifiers.fullscreen && el.originalOverflow !== 'hidden') {
document.body.style.overflow = el.originalOverflow; document.body.style.overflow = el.originalOverflow;
...@@ -47,8 +46,7 @@ exports.install = Vue => { ...@@ -47,8 +46,7 @@ exports.install = Vue => {
} else { } else {
el.style.position = el.originalPosition; el.style.position = el.originalPosition;
} }
}; });
el.mask.addEventListener('transitionend', destroyElement);
el.instance.visible = false; el.instance.visible = false;
} }
} }
......
...@@ -17,14 +17,6 @@ let fullscreenLoading; ...@@ -17,14 +17,6 @@ let fullscreenLoading;
LoadingConstructor.prototype.originalPosition = ''; LoadingConstructor.prototype.originalPosition = '';
LoadingConstructor.prototype.originalOverflow = ''; LoadingConstructor.prototype.originalOverflow = '';
const destroyElement = function() {
this.$el.removeEventListener('transitionend', destroyElement);
this.$el &&
this.$el.parentNode &&
this.$el.parentNode.removeChild(this.$el);
this.$destroy();
};
LoadingConstructor.prototype.close = function() { LoadingConstructor.prototype.close = function() {
if (this.fullscreen && this.originalOverflow !== 'hidden') { if (this.fullscreen && this.originalOverflow !== 'hidden') {
document.body.style.overflow = this.originalOverflow; document.body.style.overflow = this.originalOverflow;
...@@ -37,7 +29,12 @@ LoadingConstructor.prototype.close = function() { ...@@ -37,7 +29,12 @@ LoadingConstructor.prototype.close = function() {
if (this.fullscreen) { if (this.fullscreen) {
fullscreenLoading = undefined; fullscreenLoading = undefined;
} }
this.$el.addEventListener('transitionend', destroyElement.bind(this)); this.$on('after-leave', _ => {
this.$el &&
this.$el.parentNode &&
this.$el.parentNode.removeChild(this.$el);
this.$destroy();
});
this.visible = false; this.visible = false;
}; };
......
<template> <template>
<transition name="el-loading-fade"> <transition name="el-loading-fade" @after-leave="handleAfterLeave">
<div <div
v-show="visible" v-show="visible"
class="el-loading-mask" class="el-loading-mask"
...@@ -23,6 +23,12 @@ ...@@ -23,6 +23,12 @@
visible: false, visible: false,
customClass: '' customClass: ''
}; };
},
methods: {
handleAfterLeave() {
this.$emit('after-leave');
}
} }
}; };
</script> </script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment