ScrollSnap.tsx
ScrollSnap.module.css

import React from "react";
import styles from "./ScrollSnap.module.css";
export default function ScrollSnap() {
const [yMandatory, setYMandatory] = React.useState(false);
const [xMandatory, setXMandatory] = React.useState(false);
return (
<div>
<div
style={{ scrollSnapType: `y ${yMandatory ? "mandatory" : ""}` }}
className={styles.yParent}
>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<label className={styles.label}>
Y Mandatory
<input
type="checkbox"
defaultChecked={yMandatory}
onClick={() => setYMandatory(!yMandatory)}
/>
</label>
<div
style={{ scrollSnapType: `x ${xMandatory ? "mandatory" : ""}` }}
className={styles.xParent}
>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
<label className={styles.label}>
X Mandatory
<input
type="checkbox"
defaultChecked={xMandatory}
onClick={() => setXMandatory(!xMandatory)}
/>
</label>
</div>
);
}