我正在製作一個網頁應用程序,其中包含一個隱藏的側邊欄,通過從右側移動出現。實現此目的最明顯的方法是在父元素上隱藏側邊欄overflow: hidden;
,並使用css轉換爲right
屬性設置動畫,以便在用戶按下按鈕時顯示該屬性。用CSS過渡隱藏元素離屏
但是,我發現儘管overflow: hidden;
禁用了滾動條,用戶仍然可以通過使用Ctrl + F或標籤邊欄上的元素將父元素滾動到側邊欄,同時它應該隱藏在屏幕外,在這個過程中推動了一些主要的應用程序。
Here's a JSFiddle I made to demonstrate the problem.
雖然這不是一個特別大的問題(它可以通過只需再次切換側邊欄是固定的),這顯然是不可取的,我還沒有找到一個好辦法來對付它。
我可以使用JavaScript來監聽transitionend
事件來設置visibility
到hidden
側邊欄上,這樣的文本不能被選中時,側邊欄被隱藏,但用戶仍然能夠做到這一點,而轉變正在發生並且無論如何滾動屏幕外。
我也可以把所有的文字放在僞元素中,並在所有可聚焦的元素上添加tabindex="-1"
,這樣就沒有任何東西可以選擇,但是看起來在頂部也很雜亂,不允許用戶Ctrl + F或Tab當側欄上的元素可見時,這是不理想的。
我也可以從左側顯示側邊欄而不是右側,但我寧願看看是否有更好的方式來完成此操作,而不是更改應用程序的整個設計。
道歉,如果這已在其他地方解決,但我已經四處搜索,沒有發現任何問題。
謝謝,這工作正如我打算!我仍然需要在邊欄隱藏的情況下添加'display:none'或'visibility:hidden',以便用戶不能選擇任何內容。 – MrInanimated
同樣的問題在屏幕外的菜單上工作。這救了我的命! –