gpt4 book ai didi

javascript - Svelte:将 noscroll 类名从组件添加到正文

转载 作者:行者123 更新时间:2023-12-04 13:12:50 27 4
gpt4 key购买 nike

我有一个带有变量切换的 src/components/UI/Sidebar.svelte 组件。

export let toggle = true;
我想在 <body> 中添加一个名为“noscroll”的类名当切换为真时锁定正文滚动。我在 src/template.html 上添加了这个
<style>
.noscroll { position: fixed; overflow-y:scroll };
</style>
当侧边栏打开时,实现这样的 y 轴滚动锁定的最佳方法是什么?

最佳答案

在您的 Sidebar.svelte 中,您添加一个切换类名的 react 函数

export let toggle;
$: document.body.classList[toggle ? 'add' : 'remove']('noscroll');
更新
感谢 Rich Harris 指出 toggle 需要第二个参数 specs这可以简化为
export let toggle;

$: if (process.browser) document.body.classList.toggle('noscroll', toggle);
编辑
当使用自提出此问题以来进入公共(public)测试版的 SvelteKit 时,您还可以使用 browser提供的变量。
export let toggle;
import { browser } from '$app/env'

$: if (browser) document.body.classList.toggle('noscroll', toggle);

关于javascript - Svelte:将 noscroll 类名从组件添加到正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63259289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com