vue3+element-plus暗黑模式切换动画圆弧过渡

server/2025/1/11 19:03:30/

vue3+element-plus暗黑模式切换动画圆弧过渡

效果
在这里插入图片描述

html

 <div class="toggle" ref="switchRef" @click.stop="toggleDark()"><el-icon v-show="!isDark" :size="30"><Moon /></el-icon><el-icon v-show="isDark" :size="30"><Sunny /></el-icon></div>

ts

javascript">import { useDark } from '@vueuse/core';
const isDark = useDark();//获取切换元素的ref
const switchRef = ref<HTMLElement>();
const toggleDark = () => {// 若浏览器不支持 View Transitionsif (!document.startViewTransition) {return true;}return new Promise(resolve => {const switchEl = switchRef.value as HTMLElement;const rect = switchEl.getBoundingClientRect();const x = rect.left + rect.width / 2;const y = rect.top + rect.height / 2;const radius = Math.hypot(Math.max(x, innerWidth - x), Math.max(y, innerHeight - y));const transition = document.startViewTransition(() => {resolve(true);});transition.ready.then(() => {const clipPath = [`circle(0px at ${x}px ${y}px)`, `circle(${radius}px at ${x}px ${y}px)`];document.documentElement.animate({clipPath,},{duration: 400,easing: 'ease-in',pseudoElement: '::view-transition-new(root)',});isDark.value = !isDark.value;});});
};

http://www.ppmy.cn/server/157548.html

相关文章

利用 Python 爬虫获取 1688 关键字 API 接口

在当今电商蓬勃发展的时代&#xff0c;掌握市场动态、洞察消费者需求已成为商家制胜的关键。而 1688 作为中国领先的 B2B 电商平台&#xff0c;汇聚了海量商品与交易数据&#xff0c;其关键字 API 接口更是蕴含着丰富的市场信息。本文将详细解读如何借助 Python 爬虫技术&#…

【git】-2 分支管理

目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 ​​​​​​【git】-初始gi…

pytorch 比较两个张量的是否相等的函数介绍

在 PyTorch 中&#xff0c;可以使用多种函数来比较两个张量是否相等&#xff0c;具体选择取决于对比较精度的需求以及可能的数值误差。以下是常用的比较方法&#xff1a; 1. 完全相等的比较 (1) torch.eq 逐元素比较两个张量是否相等&#xff0c;返回布尔张量。 import torc…

Flink三种集群部署模型

这里写自定义目录标题 Flink 集群剖析Flink 应用程序执行Flink Session 集群&#xff08;Session Mode&#xff09;Flink Job 集群&#xff08;以前称为per-job&#xff09;Flink Application 集群&#xff08;Application Mode&#xff09; 参考 Flink 集群剖析 Flink 运行时…

字典树 / trie树

定义 当我手里有若干个字符串的时候&#xff0c;现在向你询问某个字符串时候是前面的这些字符串中的其中之一。如果我们用暴力的做法来求解的话&#xff0c;我可能需要对这些字符串进行逐一比对&#xff0c;效率是相当低的。那么这个时候我们就可以用 trie 树的结构简单高效的…

数据结构-串

串的实现 在C语言中所使用的字符串就是串的数据类型的一种。 串的存储结构 定长顺序存储表示 类似于线性表的顺序存储结构&#xff0c;用一组连续的存储单元存储串值的字符序列。 #define MAXLEN 255 //预定义最大串长为255 ​ typedef struct SString {char ch[MAXLEN]; …

el-descriptions-item使用span占行不生效

需要实现的效果是客户状态单独占满一行 错误代码&#xff1a; <el-descriptions title"基本信息" :column"3"> <el-descriptions-item label"公司电话:">Suzhou</el-descriptions-item><el-descriptions-item label"…

【Rust自学】11.7. 按测试的名称运行测试

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.7.1. 按名称运行测试的子集 如果想要选择运行的测试&#xff0c;就将测试的名称&#x…