概述
动画的实现其实不仅可以使用css的方式实现,而且还可以使用js的方式实现,二者有啥区别呢?css更加注重动画的展现,性能更好,而js的方式性能稍微差点,但是可以在动画执行的每一个过程中做些额外的操作。也就是说动画执行的开始-执行中-结束这个过程,如果使用css来做,最多也就是控制下动画的属性啥的,只是为了展示动画。而使用js的方式,我们可以在动画执行开始时,操作dom元素,加我们想要的效果啥的,动画执行结束时我们可以做一些动画结束的操作,比如弹个对话框啥的。这些使用js实现 都会比较方便。
实例解析
假设我们要实现一个效果:让“hello world”的字体颜色在红色和绿色之间一秒改变一次,5秒后结束,然后结束后弹出一个对话框,展示一段内容,代码如下:
- nbsp;html>
使用JS实现动画 const app = Vue.createApp({ data() { return { show:false } }, methods: { handleClick(){ this.show = !this.show; }, handleBeforeEnter(el){ el.style.color = 'red'; }, handleEnterActive(el, done){ const animation = setInterval(() => { const color = el.style.color; if(color === 'red'){ el.style.color = 'green'; }else{ el.style.color = 'red'; } },1000); setTimeout(() =>{ clearInterval(animation); done();// 通知下一个函数的执行 },5000); }, handleEnterEnd(){ alert(123); } }, template: `hello world
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。