transition

一、CSS3 transition 属性

定义和用法:

transition 属性是一个简写属性,用于设置四个过渡属性:

1、transition-property  规定应用过渡效果的 CSS 属性的名称。(当指定的 CSS 属性改变时,过渡效果将开始)

提示:过渡效果通常在用户将鼠标指针浮动到元素上时发生。

语法:

transition-property: none|all|property;

 

2、transition-duration  规定完成过渡效果需要花费的时间(以秒或毫秒计)

语法:

transition-duration: time;(默认值是 0,意味着不会有效果。)

3、transition-timing-function 规定过渡效果的速度曲线。该属性允许过渡效果随着时间来改变其速度。

语法:

transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n);

 

4、transition-delay 属性规定过渡效果何时开始;值以秒或毫秒计。

语法:

transition-delay: time;

注释:请始终设置 transition-duration 属性,否则时长为 0,就不会产生过渡效果。

语法: 

transition: property duration timing-function delay;

 

二、在vue中如何使用transition

Vue 提供了 transition 的封装组件,用来包裹需要在切换添加过渡动画的组件或元素。

transition动画的实现是依靠css进行控制的,如果页面有多个transition的话可以通过修改name属性,分别给不同的transition添加变幻样式。

在这里插入图片描述

transition的属性:

v-enter:显示/插入前的效果

v-active-enter:显示/插入的过渡时间和函数

v-enter-to:显示/插入后的效果

v-leave:隐藏/移除前的效果

v-active-leave:隐藏/移除的过渡时间和函数

v-leave-to:隐藏/移除后的效

name -string,用于自动生成CSS过渡类名。例如:name=“fade” 将自动扩展为 .fade-enter ,.fade-enter-active,等。默认类名为 “v”。

appear -boolean,是否在初始渲染时使用过渡。默认false

css - boolean,是否使用 CSS 过渡类。默认为 true。如果设置为 false,将只通过组件事件触发注册的 JavaScript 钩子

type - string,指定过渡事件类型,侦听过渡何时结束。有效值为 “transition” 和 “animation”。默认 Vue.js 将自动检测出持续时间长的为过渡事件类型。

mode - string,控制离开/进入过渡的时间序列。有效的模式有 “out-in” 和 “in-out”;默认同时进行。

duration - number | { enter: number, leave: number } 指定过渡的持续时间。默认情况下,Vue 会等待过渡所在根元素的第一个 transitionend 或 animationend 事件。

注:在使用属性时,将v换成transiton标签中的name值

<template>
  <div id="app">
    <transition name="slide-left">
        <router-view class="Router" />
    </transition>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
    };
  }
};
</script>

<style>
.Router {
  /* transition: all .8s ease; */
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
}

.slide-left-leave {
// 可以理解为将要离开的页面初始位置
  opacity: 1;
}
.slide-left-leave-to {
// 离开页面的最后位置
  transform: translateX(-100%);
}
.slide-left-enter {
// 进入页面的开始位置
  transform: translateX(100%);
}
.slide-left-enter-to {
// 进入页面的最终位置
}
.slide-left-leave-active,
.slide-left-enter-active {
  transition: all 0.8s ease;
}
// 自动生成的class类,添加一个过度属性
</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值