svelte - 如何在 Svelte 中禁用组件挂载和销毁的过渡动画?
问题描述
现在,我有一个菜单,单击汉堡按钮可以展开或折叠。菜单的默认状态是true
展开,但是当我转到菜单所在的不同路线时not there
,它会播放折叠的动画。这是一个示例代码:
<script>
import { slide } from 'svelte/transition';
let isExpanded = true;
</script>
<button on:click={()=>isExpanded=!isExpanded}>Expand/Collapse</button>
{#if isExpanded}
<nav transition:slide>
Content
</nav>
{/if}
<a href="/some-page">There is no menu in this page</a>
这是代码的当前行为:
在页面加载/重新加载时,菜单展开过渡播放(奇怪的是,这种情况有时会发生),单击链接时,菜单折叠过渡在重定向发生时播放片刻。
我不确定这是我的实现中的错误还是错误。无论哪种情况,如果为此提供解决方法,将不胜感激。
提前致谢!
解决方案
您可以local
在过渡中使用范围,因此它仅适用于创建/销毁元素时,而不适用于创建/销毁父元素时。
{#if isExpanded}
<nav transition:slide|local>
Content
</nav>
{/if}
取决于您如何实现去新路线的用例,它可能适合您,也可能不适合您。
我的结果好坏参半,最近版本的 Svelte 中修复了一些与其使用相关的错误。
推荐阅读
- terraform - terraform : 获取数据湖容器的 Mange 访问详细信息
- r - 如何将颜色更改为散点图中的两个特定数据点?
- keras - Keras LSTM 序列分类 - 损失和验证损失减少了微不足道的数量和准确性,验证准确性保持不变
- python - 在创建 django 期间向用户添加字段
- node.js - 如何将 mongodb atlas 连接与快速服务器启动分离
- r - 如何在日期中使用 ifelse
- excel - Excel:计算值是否存在于 3 列中
- vue.js - 在 Vue 中禁用键绑定复制/粘贴
- arrays - 创建 go 结构以接受带有匿名顶级项目的 json
- javascript - 有没有办法使用 discord.js v12 记录谁删除了反应?