Vue Transition组件类名+TailwindCSS

#本文教学结合TailwindCSS实现一个Transition动画的例子#

举例代码:

  <transition 
    enter-active-class="transition-all duration-300 ease-out"
    enter-from-class="opacity-0 translate-y-[-10px]"
    enter-to-class="opacity-100 translate-y-0"
    leave-active-class="transition-all duration-300 ease-out"
    leave-from-class="opacity-100 translate-y-0"
    leave-to-class="opacity-0 translate-y-[-5px]"
  >
    <!-- 你的内容 -->
  </transition>

开始分析:

进入阶段

1,enter-active-class:应用在整个进入阶段

enter-active-class="transition-all duration-300 ease-out"
  • transition:启用过渡效果(对应 CSS transition-property)

  • duration-300:过渡时长 300ms(对应 transition-duration)

  • ease-out:缓动函数(对应 transition-timing-function)

2,enter-from-class:进入起始状态

enter-from-class="opacity-0 translate-y-[-10px]"
  • opacity-0:完全透明

  • translate-y-[-10px]:Y轴向上偏移10px(使用自定义值语法)

3,enter-to-class:进入结束状态

enter-to-class="opacity-100 translate-y-0"
  • opacity-100:完全不透明

  • translate-y-0:Y轴归位

离开阶段

  • leave-active-class:应用在整个离开阶段

  • leave-active-class="transition-all duration-300 ease-out"
    
  • leave-from-class:离开起始状态

  • leave-from-class="opacity-100 translate-y-0"
    
  • leave-to-class:离开结束状态

  • leave-to-class="opacity-0 translate-y-[-5px]"

### Vue.js Transition 组件使用说明 在 Vue.js 中,`<transition>` 组件用于在插入、更新或移除 DOM 元素时应用过渡效果。这使得页面上的动画更加流畅自然。 #### 基本语法结构 ```html <transition name="fade"> <p v-if="show">hello</p> </transition> <button @click="toggle()">Toggle</button> <script> export default { data() { return { show: true } }, methods: { toggle() { this.show = !this.show; } } } </script> ``` 此代码片段展示了如何通过绑定 `v-if` 来控制元素显示与否并触发过渡效果[^1]。 #### 过渡类机制 当 `<transition>` 包裹的元素状态发生变化时,Vue 将自动切换一系列 CSS 类来实现不同阶段的效果: - **进入/离开过渡的类** - `v-enter`: 定义进入过渡的开始状态。 - `v-enter-active`: 定义进入过渡生效时的状态。 - `v-enter-to`: (2.1.8+) 定义进入过渡完成后的结束状态。 - **离开过渡的类** - `v-leave`: 定义离开过渡的开始状态。 - `v-leave-active`: 定义离开过渡生效时的状态。 - `v-leave-to`: (2.1.8+) 定义离开过渡完成后的结束状态。 这些类可以根据实际需求自定义称,并配合相应的样式规则达到理想的视觉效果[^2]。 #### 使用 JavaScript 钩子函数 除了依赖于 CSS 的方式外,还可以利用 JavaScript 实现更复杂的交互逻辑。例如,在某些情况下可能希望在过渡过程中执行特定操作,则可以借助钩子函数如 `beforeEnter`, `enter`, 和 `afterEnter` 等来进行处理。 ```javascript new Vue({ el: '#demo', methods: { beforeEnter(el) { console.log('Before Enter'); }, enter(el, done) { // 执行一些异步任务... setTimeout(() => { console.log('Entering...'); done(); // 调用done表示已完成当前阶段 }, 1000); }, afterEnter(el) { console.log('After Entered'); } } }); ``` 上述例子中展示了一个简单的基于时间延迟模拟加载过程的例子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值