Vue中的动画封装

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Hello World</title>
	<script src="vue.js" type="text/javascript" charset="utf-8"></script>
	<link rel="stylesheet" type="text/css" href="animate.css">
	<script src="jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
	<script src="velocity.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
	<div id="vm">
		<fade :show="show">
			<h1>hellow resword</h1>
		</fade>
		<button type="button" @click="handleClick">Change</button>
	</div>
	<script>
		Vue.component('fade', {
			props: ['show'],
			template: `
				<transition @before-enter="handleBeforeEnter"
							@enter="handleEnter">
					<slot v-if="show"></slot>
				</transition>
			`,
			methods: {
				handleBeforeEnter: function(el) {
					el.style.color = 'red';
				},
				handleEnter: function(el, done) {
					setTimeout(() => {
						el.style.color = 'green';
						done();
					}, 2000)
				}
			}
		});
		var vm = new Vue({
			el: '#vm',
			data: {
				show: true
			},
			methods: {
				handleClick: function() {
					this.show = !this.show;
				}
			}
		});
	</script>
</body>
</html>

通过父组件的show来判断是否显示,

template里面通过js动画来实现特效,而不是使用CSS动画放在head中实现,这样只需要调用模板的名字,然后往里面插槽,就可以使用特效了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ScrollReveal是一个JavaScript库,可以用来创建动画效果,使网页元素在滚动时以逐渐出现或消失的方式进行渲染。在Vue2,可以通过以下方式封装ScrollReveal: 1. 安装ScrollReveal 可以通过npm安装ScrollReveal: ``` npm install scrollreveal --save ``` 2. 创建ScrollReveal插件 在Vue项目创建一个新文件,名为scrollreveal.js,用于创建ScrollReveal插件。在该文件,需要引入ScrollReveal库,并使用Vue.use()将其注册为Vue插件: ```javascript import ScrollReveal from 'scrollreveal' const ScrollRevealPlugin = { install(Vue) { Vue.prototype.$sr = ScrollReveal() } } export default ScrollRevealPlugin ``` 在上述代码,我们创建了一个名为ScrollRevealPlugin的对象,该对象包含一个名为install的方法,该方法接受Vue作为参数。在该方法,我们使用Vue.prototype将ScrollReveal实例 $sr 注册到Vue实例。 3. 在Vue项目使用ScrollReveal 在Vue项目,我们可以在需要使用ScrollReveal的组件引入并使用该插件。例如,在Home.vue组件,我们可以这样使用: ```javascript <template> <div> <h1 ref="title">Hello world</h1> </div> </template> <script> import ScrollRevealPlugin from '@/plugins/scrollreveal' export default { name: 'Home', mounted() { this.$sr.reveal(this.$refs.title, { duration: 1000, origin: 'bottom', distance: '100px', delay: 500, }) }, plugins: [ScrollRevealPlugin], } </script> ``` 在上述代码,我们首先引入了刚刚创建的ScrollReveal插件。在mounted生命周期钩子,我们使用 $sr.reveal() 方法将标题元素 $refs.title 进行动画渲染。在该方法,我们可以指定动画的持续时间、起始点、移动距离和延迟时间等参数。 这样,我们就可以在Vue2项目使用封装好的ScrollReveal插件来创建动画效果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值