html - 打开/关闭模态时防止内容移动

标签 html css

<分区>


关闭 7 年前

请引用http://imdarrien.com/#

当你打开一个模式,比如配置文件,然后使用 esc 再次关闭它时,你可以看到当重新添加边栏时内容向左移动。我怎样才能防止这种转变?我已经尝试将 overflow-y:visible 添加到 html,但仍然发生这种转变。

最佳答案

当您点击打开弹出窗口时,remodal-is-locked 添加到 html 标签中。淡出动画结束后删除的类。

问题是,当您关闭弹出窗口时,html 的 overflow:hidden 仍然存在,因为类 remodal-is-locked 所以在这种情况下,两个滚动条(htmlpopup) 正在显示,因此内容位于特定位置。就在动画结束后,您删除了该类,html 再次“获取”他的 scollbar。

附言问题出在 remodal.min.js 脚本中,因此您必须编辑此文件。尽管脚本被缩小了,但我会尝试将您指向具体位置。

figure

红色 - 关闭 函数。

绿色 - 回调函数,动画结束后。

blue - 从 html 中删除类 remodal-is-locked 的函数。


解决方案

当您开始淡出动画时移除该类。 (紫色 箭头)

关于html - 打开/关闭模态时防止内容移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366416/

上一篇:javascript - 查询 : Is there a difference between a programmatic click and a manual click?

下一篇:javascript - JS .fadeOut 没有正确淡出

相关文章:

PHP/MySQL 数组帮助需要

javascript - 使用 JavaScript slider 控制 CSS 边距

jquery - 旋转图像、div 或列表元素的最佳方式

javascript - 显示下拉菜单时出现间歇性错误

html - Bootstrap 4 : How to horizontally align elements inside a drop-down?

css - AngularJS 2 styleUrls : What's up with concatenation?

javascript - 当 html 被输入到 textarea 中时,如何渲染它?

javascript - 滚动到带有溢出的 div 内的目标

javascript - HTML5 JS 同时多次播放相同的声音

html - 如何将元素隐藏在 div 边界之外