<script>
let scrollable = true;
const wheel = (node, options) => {
let { scrollable } = options;
const handler = e => {
if (!scrollable) e.preventDefault();
};
node.addEventListener('wheel', handler, { passive: false });
return {
update(options) {
scrollable = options.scrollable;
},
destroy() {
node.removeEventListener('wheel', handler, { passive: false });
}
};
};
</script>
<svelte:window use:wheel={{scrollable}} />
<label>
<input type=checkbox bind:checked={scrollable}>
scrollable
</label>
<div>
{#each Array(9999) as _, i}
<p>{i}</p>
{/each}
</div>