概述
网站的主题切换无非就是文字、背景图片或者颜色,我们可以先来看下 Element UI 官网的切换主题的动效:
PS:Antdesign UI的主题切换动画也是大同小异。
实现的两种方式
CSS 为主
<script setup>
const changeTheme = (e) => {
if (document.startViewTransition) {
document.startViewTransition(() => {
document.documentElement.classList.toggle("dark");
});
} else {
document.documentElement.classList.toggle("dark");
}
};
onMounted(() => {
const target = document.querySelector(".target1");
const { x, y } = target.getBoundingClientRect();
document.documentElement.style.setProperty("--x", x + "px");
document.documentElement.style.setProperty("--y", y + "px");
});
</script>
<style>
::view-transition-old(root) {
animation: none;
}
::view-transition-new(root) {
mix-