javascript - 通过设置 width=0 隐藏容器,但有时容器内的一些元素在容器隐藏后会短暂地保持可见

标签 javascript html css

抱歉,FPS 有点粗糙,但基本上我已经为我的网络应用程序的一些设置创建了一个侧面板

我通过设置容器元素的宽度来打开和关闭它

document.getElementById("theSidePanel").style.width = "50vw";

document.getElementById("theSidePanel").style.width = "0";

如果你仔细观察,当面板关闭时,面板上的一些控件会保持可见一秒钟,然后在侧面板已经关闭后消失

我希望这与通过设置宽度关闭面板有关,有更好的方法吗?

否则它将成为代码中其他地方的错误,这将更难解决(如果有人有想法,我洗耳恭听)

enter image description here

最佳答案

由于浏览器正在将宽度减小到 1(我假设上面有 CSS 过渡),它会在 div 缩小和缩小时重复重新绘制和重新渲染内部,这可能导致错误。

如果 div 是绝对的或固定位置的,为什么不尝试保持宽度不变,并将 left 属性修改为 div 的负宽度,并添加到 的过渡left 让它动起来?这将复制所需的效果,但不会强制浏览器不断重新呈现 div 的内容。

关于javascript - 通过设置 width=0 隐藏容器,但有时容器内的一些元素在容器隐藏后会短暂地保持可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074666/

相关文章:

javascript - 从动态创建的行中检索 id

html - 更改 CSS 渐变中的颜色流动

javascript - html 表单按钮 vs 输入类型 ="submit"vs this.submit()?

html - 如何在文本文章之间的右侧放置一个小段落

javascript - React - 具有多个类的样式化组件

javascript - 是否可以通过悬停而不是单击来激活 DIV?

html - 浏览器的图像全宽

css - 使用 gulp rebase CSS url

javascript - else 语句逻辑未运行

javascript - 如何在同一页面上运行两个相同的联合脚本?