小编MrI*_*ted的帖子

使用 CSS 转换在屏幕外隐藏元素

我正在制作一个网络应用程序,其中包含一个隐藏的侧边栏,通过从右侧移动出现。实现这一点的最明显方法是overflow: hidden;在父元素上隐藏屏幕外的侧边栏,并使用 css 转换为right属性设置动画,以便在用户按下按钮时显示。

但是,我发现即使overflow: hidden;禁用了滚动条,用户也可以通过使用 Ctrl+F 将父元素滚动到侧边栏,或者在侧边栏上的元素应该隐藏在屏幕外时使用 Tab 键,推动一些主应用程序在屏幕外。

这是我用来演示问题的 JSFiddle。

虽然这不是一个特别大的问题(它可以通过再次切换侧边栏来解决),但这显然是不可取的,我还没有找到处理它的好方法。

我可以使用 javascript 来侦听要在侧边栏上transitionend设置的事件,visibility以便hidden在侧边栏隐藏时无法选择文本,但是用户仍然可以在转换发生时执行此操作,并且无论如何都可以在屏幕外滚动。

我还可以将所有文本放在伪元素中并添加tabindex="-1"所有可聚焦元素,这样就没有任何东西可以选择了,但这似乎超出了顶部并且也很混乱,不允许用户按 Ctrl+F 或 Tab 键切换到侧边栏上的元素当它可见时,这是不可取的。

我也可以让侧边栏从左侧而不是右侧出现,但我宁愿先看看是否有更好的方法来执行此操作,而不是更改应用程序的整个设计。

如果这已在其他地方得到解决,我深表歉意,但我四处搜索并没有发现任何与我的问题有关的内容。

html javascript css overflow css-transitions

3
推荐指数
1
解决办法
3224
查看次数

标签 统计

css ×1

css-transitions ×1

html ×1

javascript ×1

overflow ×1