首页 > 其他分享 >第四十六篇 vue - 进阶主题 - 动画技巧

第四十六篇 vue - 进阶主题 - 动画技巧

时间:2023-04-05 17:45:28浏览次数:47  
标签:translate3d 动画 vue return 进阶 transform disabled shake 第四十六

动画技巧

Vue 提供了 <Transition> 和 <TransitionGroup> 组件来处理元素进入、离开和列表顺序变化的过渡效果。但除此之外,还有许多其他制作网页动画的方式在 Vue 应用中也适用。这里我们会探讨一些额外的技巧

基于 CSS class 的动画

对于那些不是正在进入或离开 DOM 的元素,我们可以通过给它们动态添加 CSS class 来触发动画

export default {
  data() {
    return {
      disabled: false
    }
  },
  methods: {
    warnDisabled() {
      this.disabled = true
      setTimeout(() => {
        this.disabled = false
      }, 1500)
    }
  }
}

<div :class="{ shake: disabled }">
  <button @click="warnDisabled">Click me</button>
  <span v-if="disabled">This feature is disabled!</span>
</div>

.shake {
  animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
  transform: translate3d(0, 0, 0);
}
@keyframes shake {
  10%,
  90% {
    transform: translate3d(-1px, 0, 0);
  }
  20%,
  80% {
    transform: translate3d(2px, 0, 0);
  }
  30%,
  50%,
  70% {
    transform: translate3d(-4px, 0, 0);
  }
  40%,
  60% {
    transform: translate3d(4px, 0, 0);
  }
}

状态驱动的动画

有些过渡效果可以通过动态插值来实现,比如在交互时动态地给元素绑定样式。看下面这个例子

export default {
  data() {
    return {
      x: 0
    }
  },
  methods: {
    onm ousemove(e) {
      this.x = e.clientX
    }
  }
}

<div
  @mousemove="onMousemove"
  :style="{ backgroundColor: `hsl(${x}, 80%, 50%)` }"
  class="movearea">
  <p>Move your mouse across this div...</p>
  <p>x: {{ x }}</p>
</div>

.movearea {
  transition: 0.3s background-color ease;
}

除了颜色外,你还可以使用样式绑定 CSS transform、宽度或高度。你甚至可以通过运用弹性物理模拟为 SVG 添加动画,毕竟它们也只是 attribute 的数据绑定

基于侦听器的动画

通过发挥一些创意,我们可以基于一些数字状态,配合侦听器给任何东西加上动画。例如,我们可以将数字本身变成动画

import gsap from 'gsap'
export default {
  data() {
    return {
      number: 0,
      tweened: 0
    }
  },
  watch: {
    number(n) {
      gsap.to(this, { duration: 0.5, tweened: Number(n) || 0 })
    }
  }
}

Type a number: <input v-model.number="number" />
<p>{{ tweened.toFixed(0) }}</p>

标签:translate3d,动画,vue,return,进阶,transform,disabled,shake,第四十六
From: https://www.cnblogs.com/caix-1987/p/17290004.html

相关文章

  • 第四十五篇 vue - 进阶主题 - Vue 与 Web Components
    Vue与WebComponentsWebComponents是一组web原生API的统称,允许开发者创建可复用的自定义元素(customelements)Vue和WebComponents是互补的技术。Vue为使用和创建自定义元素提供了出色的支持。无论你是将自定义元素集成到现有的Vue应用中,还是使用Vue来构建和......
  • 第四十七篇 vue - vue2 和 vue3 的对比
    vue2和vue3不同点汇总1、生命周期2、多根节点3、CompositionApi4、异步组件5、响应式原理6、Teleport7、虚拟Dom8、事件缓存9、Diff算法优化10、打包优化11、TypeScript支持生命周期1、Vue3生命周期整体上变化不大,Vue3在大部分生命周期钩子名称......
  • 基于SpringBoot+Vue+ElementUI的在线考试系统(可做毕设)
    项目简介青云是一套麻雀虽小但五脏俱全的在线考试系统。采用了目前主流的技术栈SpringBoot+Vue+ElementUI,并进行了前后端分离。对于事务和锁都有应用,非常适合学习练手。项目演示项目演示地址:http://xuezhabiji.com:5000账号:admin密码:admin代码获取:github:https://github.com......
  • vue项目启动时 `webpack-dev-server –inline –progress –config build/webpack.dev
    vue项目在npmrundev时报错[email protected]:webpack-dev-server--inline--progress--configbuild/webpack.dev.conf.js解决这类问题主要分两种情况这个项目已经构建好的项目,你只是从git、snv或者其他地方引入,别人能运行你不能运行这是一个新构建的vue项目第一......
  • 从一个电影网站项目学习[前台显示端]—Vue.js
    本篇文章通过一个完整的电影介绍和电影资源发布网站的项目,过一遍Vue.js。通过前面章节的介绍http://www.shanhubei.com/tag/vue或在本平台下的相关文章了解一下。(ps本人是通过工具编辑器编写,同步在多个平台上)项目源码:github:https://github.com/shanhubei/vue_movie_example......
  • springboot +vue2.x实现音乐网站
    1pom文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache......
  • Vue进阶(四十七):面试必备:2023 Vue经典面试题总结(含答案)
    一、什么是MVVM?MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View代表UI组件,它负责将数据模型转化成UI展现出来,ViewModel是一个同步View和Model的对象。在MVVM架构下,View和Model之间并没......
  • 第三十八篇 vue - 最佳实践 - 性能优化
    概述Vue在大多数常见场景下性能都是很优秀的,通常不需要手动优化。然而,总会有一些具有挑战性的场景需要进行针对性的微调。在本节中,我们将讨论用Vue开发的应用在性能方面该注意些什么首先,让我们区分一下web应用性能的两个主要方面1、页面加载性能首次访问时,应......
  • 第三十九篇 vue - 最佳实践 - 安全
    报告漏洞虽然很少发现新的漏洞,但我们仍建议始终使用最新版本的Vue及其官方配套库,以确保你的应用尽可能地安全。首要规则:不要使用无法信赖的模板使用Vue时最基本的安全规则就是不要将无法信赖的内容作为你的组件模板。使用无法信赖的模板相当于允许任意的JavaScript在你......
  • javaEE进阶小结与回顾(一)
    继承继承的格式:publicclassStudentextendsPeople()父类:子类的共性抽取而来继承的好处,子类可以直接使用父类成员,提高代码复用性与可维护性继承的弊端,使类与类之间产生关联,增强其之间的耦合性,父类变化时子类不得不跟着变化类与类之间具有isa的关系时,适合使用继承,......