Update sequential-entrance.vue
This commit is contained in:
		
							parent
							
								
									24453ebcc3
								
							
						
					
					
						commit
						742889a035
					
				
					 1 changed files with 37 additions and 41 deletions
				
			
		| 
						 | 
				
			
			@ -1,12 +1,10 @@
 | 
			
		|||
<template>
 | 
			
		||||
<transition-group v-if="$store.state.device.animation"
 | 
			
		||||
	name="staggered-fade"
 | 
			
		||||
	class="uupnnhew"
 | 
			
		||||
	:data-direction="direction"
 | 
			
		||||
	:data-reversed="reversed ? 'true' : 'false'"
 | 
			
		||||
	name="staggered"
 | 
			
		||||
	tag="div"
 | 
			
		||||
	:css="false"
 | 
			
		||||
	@before-enter="beforeEnter"
 | 
			
		||||
	@enter="enter"
 | 
			
		||||
	@leave="leave"
 | 
			
		||||
	mode="out-in"
 | 
			
		||||
	appear
 | 
			
		||||
>
 | 
			
		||||
	<slot></slot>
 | 
			
		||||
| 
						 | 
				
			
			@ -37,48 +35,46 @@ export default Vue.extend({
 | 
			
		|||
			default: false
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	i: 0,
 | 
			
		||||
	methods: {
 | 
			
		||||
		beforeEnter(el) {
 | 
			
		||||
			if (document.hidden) return;
 | 
			
		||||
 | 
			
		||||
			el.style.opacity = 0;
 | 
			
		||||
			el.style.transform = this.direction === 'down' ? 'translateY(-64px)' : 'translateY(64px)';
 | 
			
		||||
			const delay = this.delay * this.$options.i;
 | 
			
		||||
			el.style.transition = [getComputedStyle(el).transition, `transform 0.7s cubic-bezier(0.23, 1, 0.32, 1) ${delay}ms`, `opacity 0.7s cubic-bezier(0.23, 1, 0.32, 1) ${delay}ms`].filter(x => x != '').join(',');
 | 
			
		||||
			this.$options.i++;
 | 
			
		||||
 | 
			
		||||
			setTimeout(() => {
 | 
			
		||||
				el.style.transition = null;
 | 
			
		||||
				el.style.transform = null;
 | 
			
		||||
				el.style.opacity = null;
 | 
			
		||||
				this.$options.i--;
 | 
			
		||||
			}, delay + 710);
 | 
			
		||||
		},
 | 
			
		||||
		enter(el) {
 | 
			
		||||
			if (document.hidden) {
 | 
			
		||||
				el.style.opacity = 1;
 | 
			
		||||
				el.style.transform = 'translateY(0px)';
 | 
			
		||||
			} else {
 | 
			
		||||
				setTimeout(() => { // 必要
 | 
			
		||||
					el.style.opacity = 1;
 | 
			
		||||
					el.style.transform = 'translateY(0px)';
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		leave(el) {
 | 
			
		||||
			el.style.opacity = 0;
 | 
			
		||||
			el.style.transform = this.direction === 'down' ? 'translateY(64px)' : 'translateY(-64px)';
 | 
			
		||||
		},
 | 
			
		||||
		focus() {
 | 
			
		||||
			this.$slots.default[0].elm.focus();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	},
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.staggered-fade-move {
 | 
			
		||||
	transition: transform 0.7s !important;
 | 
			
		||||
.staggered-move {
 | 
			
		||||
	transition: all 0.7s cubic-bezier(0.23, 1, 0.32, 1) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.uupnnhew[data-direction="up"] {
 | 
			
		||||
	.staggered-enter {
 | 
			
		||||
		opacity: 0;
 | 
			
		||||
		transform: translateY(64px);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.uupnnhew[data-direction="down"] {
 | 
			
		||||
	.staggered-enter {
 | 
			
		||||
		opacity: 0;
 | 
			
		||||
		transform: translateY(-64px);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.uupnnhew[data-reversed="true"] {
 | 
			
		||||
	@for $i from 1 through 30 {
 | 
			
		||||
		.staggered-enter-active:nth-last-child(#{$i}) {
 | 
			
		||||
			transition: all 0.7s cubic-bezier(0.23, 1, 0.32, 1) (15ms * ($i - 1));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.uupnnhew[data-reversed="false"] {
 | 
			
		||||
	@for $i from 1 through 30 {
 | 
			
		||||
		.staggered-enter-active:nth-child(#{$i}) {
 | 
			
		||||
			transition: all 0.7s cubic-bezier(0.23, 1, 0.32, 1) (15ms * ($i - 1));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue