
svelte-motion 的 MotionDiv 与 M 组件零门槛给 Svelte 元素添加动画【免费下载链接】svelte-motionAn animation library for Svelte based on framer-motion.项目地址: https://gitcode.com/gh_mirrors/sv/svelte-motionsvelte-motion 是一个基于 framer-motion 移植的 Svelte 动画库专为 Svelte 生态设计。如果你正苦于给 Svelte 元素添加动画时的手动计算与样式拼接那么 MotionDiv 与 M 这两个组件就是你的最佳入口——它们把复杂的动画逻辑封装起来让你用最少的代码、零门槛地完成过渡、悬停、拖拽等效果。本文用最通俗的方式带你认识这两个组件并快速上手。为什么 svelte-motion 值得一试它继承了 framer-motion 成熟的动画理念但又完全面向 Svelte 语法重写。核心功能由 featureBundle.js 统一加载涵盖动画、手势、拖拽与布局动画四大能力也就是说你不需要引入多个库一个 svelte-motion 就能覆盖日常 90% 的动效需求。安装同样简单一条命令即可npm install --save-dev svelte-motionMotionDiv 组件最省心的 Svelte 动画入门组件MotionDiv 是包装好的div动画组件源码位于 MotionDiv.svelte它的实现非常薄——内部复用了底层的Motion组件并通过use:motion指令把动画能力挂载到真实的 div 上。使用它你不需要关心任何底层细节直接像写普通 div 一样写 MotionDiv 即可script import { MotionDiv } from svelte-motion; /script MotionDiv initial{{ opacity: 0, x: -50 }} animate{{ opacity: 1, x: 0 }} transition{{ duration: 0.8 }} 你好svelte-motion /MotionDiv这段代码实现了元素从左侧滑入并渐显的效果短短几行就完成了通常需要写大量 CSS 的工作。M 组件一个组件覆盖所有 HTML 与 SVG 元素如果你觉得 MotionDiv 只能用于 div 不够灵活那么 M 组件会带来惊喜。它的实现巧妙利用了 JavaScript 的 Proxy 机制源码见 motion-proxy.js 与 M.svelteM.div、M.span、M.button覆盖常见 HTML 标签M.svg、M.path、M.circle、M.g覆盖 SVG 图形内部通过svelte:element动态生成对应标签真正实现一套代码处处可用。例如给 SVG 路径添加动画script import { M } from svelte-motion; /script M.path dM10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80 initial{{ pathLength: 0 }} animate{{ pathLength: 1 }} transition{{ duration: 2 }} /这就是常见的描边生长动画非常适合数据可视化场景。常用动画属性速览4 个核心关键词无论 MotionDiv 还是 M接受的动画属性完全一致记住下面 4 个就够用了initial初始状态定义元素从哪来animate目标状态定义元素到哪里去transition动画参数如时长、缓动、延迟whileHover / whileTap悬停与点击时触发的状态例如给按钮加上悬停缩放只需追加一个属性MotionDiv whileHover{{ scale: 1.05 }} whileTap{{ scale: 0.95 }} 悬停我试试 /MotionDiv从 MotionDiv 到 M进阶路线建议两个组件的底层都依赖 Motion.svelteSSR 版本见 MotionSSR.svelte它们只是不同粒度的封装。建议的进阶路线是先用 MotionDiv 跑通第一个动画建立信心遇到 SVG 或多种标签时切换到 M 组件需要完全自定义时再用Motionuse:motion指令手工组合参考 README.md 中的用法如果希望深入学习源码或参与贡献可以克隆仓库https://gitcode.com/gh_mirrors/sv/svelte-motion本地运行。小结MotionDiv 负责省心M 组件负责灵活两者共同构成了 svelte-motion 的入门双通道。无论你是刚接触 Svelte 的新手还是想快速给现有项目加动效的开发者都可以从这两个组件开始几行代码就能让页面活起来。还等什么快去给你的 Svelte 元素加上第一段动画吧【免费下载链接】svelte-motionAn animation library for Svelte based on framer-motion.项目地址: https://gitcode.com/gh_mirrors/sv/svelte-motion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考