尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Slidev 导航方向变体详解:用 forward/backward 为前进与后退应用不同样式和动画
Slidev 导航方向变体详解用 forward/backward 为前进与后退应用不同样式和动画【免费下载链接】slidevPresentation Slides for Developers项目地址: https://gitcode.com/GitHub_Trending/sl/slidev本文讲解 Slidev 自 v0.48.0 引入的导航方向变体Navigation Direction Variants通过在幻灯片容器上动态挂载.slidev-nav-go-forward与.slidev-nav-go-backward类以及配套的 UnoCSSforward:/backward:变体前缀你可以为前进和后退两种导航方向编写完全不同的 CSS 样式与过渡动画。读完本文你将理解这两个类在渲染管线中的来源与挂载时机掌握纯 CSS 与 UnoCSS 两种写法并能实现进入慢、离开快这类不对称动画效果。功能定位为什么需要方向敏感的样式在演讲中翻页时观众常希望进入下一页的动画更从容例如元素依次带延迟淡入而回退到上一页时则希望动画立即完成避免等待感。Slidev 的 v-click 动画机制本身不区分导航方向因此官方在 v0.48.0 提供了方向变体能力导航发生时幻灯片容器会自动带上方向类任何后代元素尤其是.slidev-vclick-target动画目标都可以据此应用条件化样式。该功能在仓库中的完整文档见 docs/features/direction-variant.mdAI 技能参考见 skills/slidev/references/style-direction.md。两类方向类从哪里来源码中的挂载机制从源码结构看方向类挂载在幻灯片总容器#slideshow上由clicksDirection这个响应式引用驱动。在 packages/client/internals/SlidesShow.vue 中承载全部幻灯片的容器组件绑定了这样的 classcomponent :is... idslideshow tagdiv :class{ slidev-nav-go-forward: clicksDirection 0, slidev-nav-go-backward: clicksDirection 0, } after-leaveonAfterLeave clicksDirection定义在 packages/client/composables/useNav.ts 中初始值为0。所有导航入口函数都会在触发路由变更前先设置方向值next()/nextSlide()设置clicksDirection.value 1见 useNav.ts#L144-L168prev()/prevSlide()设置clicksDirection.value -1见 useNav.ts#L152-L178这里有两个值得注意的实现细节方向在交互瞬间即被确定。clicksDirection在用户点击下一页/上一页无论是翻页还是页内 v-click 步进时被立即赋值早于路由 URL 更新因此新进入的元素在首帧就能读到正确的方向类CSStransition可以从导航开始的那一刻就带上方向相关的延迟。方向值不会被重置为 0。它始终保留最近一次导航方向也就是说容器在页面加载后首次前进导航前不携带任何方向类此后则稳定持有 forward 或 backward 之一。顺带说明useNav中还导出一个navDirection1 为前进、-1 为后退见 useNav.ts#L43-L46它由路由号差值计算next.no - prev.no主要用于解析幻灯片切换过渡与容器上的方向类互为补充。写法一纯 CSS 选择器最直接的方式是在幻灯片的 CSS内联样式块、style.css或主题样式中直接引用这两个容器类。官方文档给出的标准示例是仅前进时给 v-click 目标加过渡延迟后退时立即显示/* example: delay on only forward but not backward */ .slidev-nav-go-forward .slidev-vclick-target { transition-delay: 500ms; } .slidev-nav-go-backward .slidev-vclick-target { transition-delay: 0; }.slidev-vclick-target是 Slidev 附加在每一个v-click指令目标元素上的类名元素隐藏时还会附带.slidev-vclick-hidden机制详见 docs/guide/animations.md。仓库的 Cypress 端到端测试也大量依赖这一类名来断言点击动画状态例如 cypress/e2e/examples/basic.spec.ts可以佐证它是动画体系中稳定、可预期的钩子类。由于选择器是容器类 后代类的普通 CSS你还可以把范围扩大到任何自定义元素例如/* 前进时标题淡入后退时无动画 */ .slidev-nav-go-forward .slidev-page h1 { transition: opacity 600ms ease; } .slidev-nav-go-backward .slidev-page h1 { transition: none; }写法二UnoCSSforward:/backward:变体为避免在模板里手写复杂选择器Slidev 在客户端 UnoCSS 配置中注册了两个专用变体。实现位于 packages/client/uno.config.ts// Slidev Specific Variants, probably extrat to a preset later variants: [ // forward: and backward: variant to selectively apply styles based on the direction of the slide // For example, forward:text-red will only apply to the slides that are navigated forward variantMatcher(forward, input ({ prefix: .slidev-nav-go-forward ${input.prefix} })), variantMatcher(backward, input ({ prefix: .slidev-nav-go-backward ${input.prefix} })), ],variantMatcher是unocss/preset-mini提供的工具当它看到forward:前缀时会把生成的 CSS 选择器重写为.slidev-nav-go-forward 原选择器。也就是说forward:delay-300最终等价于.slidev-nav-go-forward .\31\... { transition-delay: 300ms }这类带容器前缀的规则。得益于这一机制你在 Markdown 里写任意 UnoCSS 类时都可以加方向前缀例如官方文档中的对比示例div v-click classtransition delay-300Element/div !-- 前后方向都有 300ms 延迟 -- div v-click classtransition forward:delay-300Element/div !-- 仅前进时有 300ms 延迟 --上面第二行中动画只在前进导航时被延迟回退时元素立即呈现。变体也可以与 UnoCSS 的变体组、dark:等组合使用且extractorMdc提取器同样配置于 uno.config.ts#L63-L65保证 Markdown 内容中的类名能被完整扫描生成。需要说明的前提这份客户端配置会经 packages/slidev/node/setups/unocss.ts 与主题、用户项目中的 UnoCSS 配置合并因此forward:/backward:在常规 Slidev 幻灯片中开箱即用无需任何额外配置。与幻灯片切换过渡transition的方向语义对照Slidev 的方向感知并非只有样式这一个落点幻灯片切换过渡同样区分前进/后退理解二者关系有助于避免混淆容器方向类由clicksDirection驱动在交互发生时立即更新面向页内元素动画的方向条件化幻灯片整体过渡由navDirection驱动解析逻辑在 packages/client/logic/transition.ts 中内置的slide-left等过渡会自动展开为slide-left | slide-right这样的前进 | 后退双向定义你也可以在前端 frontmatter 中手写transition: 前进名 | 后退名的管道语法来自定义两个方向的不同过渡当过渡为view-transition浏览器原生 View Transition API时容器会临时从TransitionGroup切换为普通div见 SlidesShow.vue#L82-L83 与 packages/client/composables/useViewTransition.ts但方向类绑定不受影响forward:/backward:变体依旧生效。从源码结构看两套机制共享前进为正、后退为负的方向约定只是作用对象不同transition管的是两页之间的整体切换动画而方向类管的是进入/离开过程中元素级 CSS 动画的条件化。实战建议与适用边界典型场景不对称入场体验。前进时用forward:给v-click序列加上transition-delay让要点逐个从容出现后退时保持delay-0让观众快速回到上文。选择器粒度容器类作用域是当前幻灯片容器配合.slidev-vclick-target、.slidev-page等结构性类名即可精确控制目标范围不影响全局其他组件。注意初始状态页面首次加载、尚未发生任何导航时clicksDirection为 0两个类都不存在因此默认样式无前缀规则会作为兜底生效——这正是需要为无延迟显式写出backward:规则或基础规则的原因。版本前提该能力自 v0.48.0 引入见 docs/features/direction-variant.md 的 frontmatter 声明在更早版本中不存在forward:/backward:变体纯 CSS 类名选择器同样不可用。综上方向变体是 Slidev 用一个容器类 两个 UnoCSS 变体极低成本实现的方向条件化样式方案源码层面只需 useNav.ts 中四处一行赋值、SlidesShow.vue 中的 class 绑定以及 uno.config.ts 中两个variantMatcher注册用户侧则可以在 Markdown 单行 class 或 CSS 文件中自由发挥。【免费下载链接】slidevPresentation Slides for Developers项目地址: https://gitcode.com/GitHub_Trending/sl/slidev创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

编程从“兴趣班”升级中小学必修课:信息科技课的3大核心改革

编程从“兴趣班”升级中小学必修课:信息科技课的3大核心改革

最近教育部的课程调整,让“编程”彻底跳出了“课外兴趣班”的范畴——如今它已成为中小学的必修内容,甚至有人说“AI时代的编程,相当于10年前的英语”,提前掌握就是抢占未来先机。 而这次编程“转正”的背后,是中小学“…

📅 2026/10/6 4:30:51
能不能用 AI 快速做出 UI 动画?三步做出淡入淡出效果

能不能用 AI 快速做出 UI 动画?三步做出淡入淡出效果

能不能用 AI 快速做出 UI 动画?三步做出淡入淡出效果 【免费下载链接】ai-guide 程序员鱼皮的 AI 资源大全 Vibe Coding 零基础教程,分享 OpenClaw 保姆级教程、大模型玩法(DeepSeek / GPT / Gemini / Claude / GLM)、最新 AI 资…

📅 2026/10/5 11:38:59
ruflo V3 Integration Architect 实战:基于 agentic-flow 深度集成与 ADR-001 万行代码去重的完整技术指南

ruflo V3 Integration Architect 实战:基于 agentic-flow 深度集成与 ADR-001 万行代码去重的完整技术指南

ruflo V3 Integration Architect 实战:基于 agentic-flow 深度集成与 ADR-001 万行代码去重的完整技术指南 【免费下载链接】ruflo 🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and…

📅 2026/10/5 9:56:04
MORE NEWS

更多资讯

📰

电工工地上太忙没时间复习?真实经历告诉你高级电工证审查有多重要

电工工地上太忙没时间复习?真实经历告诉你高级电工证审查有多重要 工地太忙根本没时间复习考试,这种感受我太懂了。作为一名在安阳转岗的电工,我曾经也因为项目赶工期,连最基本的考试复习时间都挤不出来,结果高级电工证审查一关就卡住了。今天我用…

📰

干装配电工要电工证吗?含金量高的证书怎么考

干装配电工要电工证吗?含金量高的证书怎么考 之前考的证在外省能不能转过来?这个问题我见过太多人问,特别是像你这样在商丘从事水利工程的电工,干装配电工要电工证吗?含金量到底有没有用?今天就用咱们圈里的真实案例和政策解读,帮你彻底理清楚。…

📰

荔浦电工证考试考前押题怎么找?学历不高也能考!

荔浦电工证考试考前押题怎么找?学历不高也能考! 你是不是也担心,自己学历不高,荔浦电工证考试根本报不上名?其实不然,电工证的报考门槛并不高,关键是你怎么准备。很多人因为不了解流程、担心自己学历不够,迟迟不敢行动。今天我就从一个从业多年的应急…

📰

江苏特种工官网查询 良心建议:工地太忙根本没时间复习考试?

江苏特种工官网查询 良心建议:工地太忙根本没时间复习考试? 工地太忙根本没时间复习考试,这是很多特种作业人员的共同痛点。尤其在江苏地区,特种作业操作证的管理越来越严格,证书不仅关系到能否上岗,更直接影响到薪资和职业发展。对于初次报考的新乡人…

📰

秦皇岛快速办理电工证在哪考全流程详解

秦皇岛快速办理电工证在哪考全流程详解 之前考的证在外省能不能转过来?很多小伙伴第一次听说在秦皇岛办电工证,第一反应就是: 在哪考 ?是不是得跑到省会?是不是得等几个月?其实,现在秦皇岛本地已经能快速办理了,流程也不复杂。这篇文章就从…

📰

电工证丢失在哪补办 考证含金量怎么体现

电工证丢失在哪补办 考证含金量怎么体现 你还在为电工证丢失愁眉苦脸吗?找工作被卡在证件这一关,特种作业证就像你的“敲门砖”, 含金量…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬