Transition (過場)
<Float>
自帶 <transition>
元件,只需要加上過場中需要的 class:
html
<Float
enter="transition duration-200 ease-out"
enter-from="scale-95 opacity-0"
enter-to="scale-100 opacity-100"
leave="transition duration-150 ease-in"
leave-from="scale-100 opacity-100"
leave-to="scale-95 opacity-0"
tailwindcss-origin-class
>
開啟 tailwindcss-origin-class
後,會需要根據 placement 自動加上對應的 Tailwind CSS origin
class (例:top
對應 origin-bottom
class、bottom-start
對應 origin-top-left
class)。
如果使用了 tailwindcss-origin-class
,也需要在 safelist 中增加 origin
class:
js
// tailwind.config.js
const { tailwindcssOriginSafelist } = require('@headlessui-float/vue')
module.exports = {
safelist: [...tailwindcssOriginSafelist],
}
如果需要指定或覆蓋 origin
class,可以用 origin-class
:
html
<Float origin-class="origin-top-left">
過場效果命名
目前預設過場元件是 Headless UI 的 <TransitionRoot>
,因此需要使用 vue-transition
來改為使用 Vue 內建的過場元件,才能使用過場效果命名。
注意
v0.14+ 的版本才能使用 vue-transition
。
使用命名 class 來定義過場 CSS 效果:
html
<Float
vue-transition
transition-name="fade"
>
與之對應的的 class:
vue
<style>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s ease;
}
.fade-enter-from,
.fade-leave-to {
opacity: 0;
}
</style>