为了账号安全,请及时绑定邮箱和手机立即绑定

Svelte:将 noscroll 类名添加到组件的主体

Svelte:将 noscroll 类名添加到组件的主体

ABOUTYOU 2022-12-22 09:44:29
我有一个带有可变切换开关的 src/components/UI/Sidebar.svelte 组件。export let toggle = true;我想<body>在切换为真时添加一个类名“noscroll”以锁定主体滚动。我在 src/template.html 添加了这个<style>     .noscroll { position: fixed; overflow-y:scroll };     </style>当侧边栏打开时,实现这样的 y 轴滚动锁定的最佳方法是什么?
查看完整描述

1 回答

?
www说

TA贡献1775条经验 获得超8个赞

在您的 Sidebar.svelte 中,您添加了一个反应函数来切换类名


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);

编辑 当使用自问到这个问题后进入公开测试版的 SvelteKit 时,您还可以使用browser提供的变量。


export let toggle;

import { browser } from '$app/env'


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


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信