解析使用useDark(),發(fā)現(xiàn)transition?動畫失效
先上個示例
<template>
<div class="theme-change">
<button
class="switch"
@click="toggleTheme"
role="switch"
aria-label="切換暗色主題"
:class="{
k: isDark
}"
>
按鈕
</button>
</div>
</template>
<script setup lang="ts">
const isDark = useDark();
function toggleTheme() {
isDark.value = isDark.value ? false : true;
}
</script>
<style scoped lang="scss">
.theme-change {
.switch {
transition: all 3s;
background: green;
}
}
.k.switch {
background: red;
}
</style>上面這段代碼在點擊按鈕時不會出現(xiàn)背景顏色的過渡效果
如果把代碼改一下
// const isDark = useDark(); const isDark = ref(false);
過渡效果
這個時候才會有過渡效果。
useDark() 讓 html 元素添加了 dark 類名,如果不用 useDark(),通過下列的方式
// const isDark = useDark();
const isDark = ref(false);
function toggleTheme() {
document.documentElement.classList.toggle('dark')
isDark.value = isDark.value ? false : true;
}也是有過渡效果的。
對于為什么用 useDark() 會導(dǎo)致過渡效果失效,一直找不到原因,有知道的嗎?
以上就是解析使用useDark(),發(fā)現(xiàn)transition 動畫失效的詳細內(nèi)容,更多關(guān)于useDark() transition 動畫失效的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue.js + Nuxt.js 項目中使用 Vee-validate 表單校驗
vee-validate 是為 Vue.js 量身打造的表單校驗框架,允許您校驗輸入的內(nèi)容并顯示對應(yīng)的錯誤提示信息。這篇文章給大家?guī)砹薞ue.js 使用 Vee-validate 實現(xiàn)表單校驗的相關(guān)知識,感興趣的朋友一起看看吧2019-04-04
詳解Vue2和Vue3的區(qū)別以及其鉤子函數(shù)的使用
Vue.js?3?和?Vue.js?2?是兩個主要版本的流行前端框架,它們之間有很多區(qū)別,包括性能優(yōu)化、新特性和改進的API等,下面就跟隨小編一起來看看他們的使用區(qū)別吧2024-01-01
淺談Vue CLI 3結(jié)合Lerna進行UI框架設(shè)計
這篇文章主要介紹了淺談Vue CLI 3結(jié)合Lerna進行UI框架設(shè)計,在此之前先簡單介紹一下Element的構(gòu)建流程,以便對比新的UI框架設(shè)計。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04
vue實現(xiàn)微信分享鏈接添加動態(tài)參數(shù)的方法
這篇文章主要介紹了vue微信分享鏈接添加動態(tài)參數(shù)的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04
vue修飾符v-model及.sync原理及區(qū)別詳解
這篇文章主要為大家介紹了vue修飾符v-model及.sync原理及使用區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07

