色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何防止tab鍵滾動我的旋轉木馬

錢瀠龍1年前7瀏覽0評論

我正在構建一個包含未知數量元素的carousel組件。我希望當用戶點擊相應的按鈕時,旋轉木馬向左或向右滾動。當屏幕右側不再有內容時,向右滾動按鈕應該會消失。

我的代碼在用戶點擊按鈕時運行良好。然而,當用戶使用tab鍵時,我的轉盤會自動滾動,但是我測量轉盤滑動距離的函數沒有檢測到這一點。

https://codesandbox.io/s/peaceful-rubin-nkgp5x?文件=/src/styles.module.scss

useEffect(() => {
        let box = document.getElementById("musterOverviewDocumentChecklist");
        console.log(box.getBoundingClientRect());
        let width = box.offsetWidth;

        setCanScrollLeft(-scrollDistance <= 0);
        setCanScrollRight(
            -scrollDistance >=
                (documentCategories.documents.length + 1) * 210 - width
        );
    }, [documentCategories, scrollDistance]);

你的問題在這里看起來很簡單,這個函數應該完全禁止“tab”鍵執行,如果你在某些情況下仍然需要它,那么只需擴展if語句并使其阻止該鍵。如果滿足另一個條件,你也可以將其他鍵添加到“preventKeys”集合中。如果你需要阻止其他鍵運行,該函數可能看起來有點奇怪。 這是一個簡潔的javascript技巧,函數被立即調用,但也可以多次調用,它的工作原理是函數聲明在最后返回自身,所以當你調用' preventKeyPress '時,preventKeys會再次被調用

const preventKeyPress = (function preventKeys() {
    const preventKeys = new Set(['Tab']);

    addEventListener('keydown', event => {
        if (preventKeys.has(event.key)) {
            event.stopImmediatePropagation();
            event.preventDefault();
        }
    });

    return preventKeys;
})();