我正在制作一个网页应用程序,其中包含一个隐藏的侧边栏,通过从右侧移动出现。实现此目的最明显的方法是在父元素上隐藏侧边栏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
同样的问题在屏幕外的菜单上工作。这救了我的命! –