CSS 动画与 JavaScript 动画

269 阅读1分钟

Web 开发中, 在用户体验上, 前端动态的 UI 交互非常重要. Web 开发动画可以用 CSS 也可以用 JavaScript 来实现, 简单不需要控制的动画, 可以用 CSS. 或纯 JavaScript, 更复杂的, 一般是 CSS + JavaScript 结合来用. 没有绝对优劣; 一切都取决于你的目标。

浏览器渲染

实例1: 鼠标经过箭头反转 (CSS + JS)

以下为 Vue 中代码: 鼠标经过时, 给 button 添加 class 'move', 离开时, 添加 class 'remove'

JS
      <el-button ref="button" slot="reference" class="button" :type="buttonType">
        {{ buttonText }}<i ref="arrow" class="el-icon-arrow-down el-icon--right" :class="isShow ? 'move':'remove'" />
      </el-button>
  data() {
    return {
      isShow: false
    };
  },
    methods: {
    // 组件显示调用
    show() {
      this.isShow = true;
    },
    // 组件隐藏调用
    hide() {
      this.isShow = false;
    }
  }
CSS
.remove {
  transition: all 0.5s;
}
.move {
  transform: rotate(180deg);
  transition: all 0.5s;
}

transition 属性是一个速记属性,用于设置四个过渡属性:

transitionProperty、 transitionDuration、 transitionTimingFunction 和 transitionDelay.

注意: 请始终设置 transitionDuration 属性,否则持续时间为 0,就不会产生过渡效果。

语法

返回 transition 属性:

object.style.transition

设置 transition 属性:

object.style.transition="property duration timing-function delay|initial|inherit"

属性值

描述
transitionProperty规定应用过渡效果的 CSS 属性的名称。
transitionDuration规定完成过渡效果需要多少秒或毫秒。
transitionTimingFunction规定过渡效果的速度曲线。
transitionDelay定义过渡效果何时开始。
initial设置该属性为它的默认值。
inherit从父元素继承该属性。

animation 动画

未完待续...

写着写着发现, 很多内容没有整理清晰出来, 先到这里. 后面整理好了在发出来.