解决模拟弹出框情况下文档滚动的问题

用div元素来模拟弹出框很普遍,它可以自行定制各式各样的弹出框。弹出框一般用的是fixed绝对定位,也就是相对于浏览器窗口定位。

在文档高度大于窗口高度的情况下,弹出框会存在一个问题。当弹出框在显示的时候,滚动鼠标(PC端)或滑动页面(移动端)会导致文档滚动。还有在弹出框的高度也大于窗口高度时,滚动鼠标或滑动页面会先滚动弹出框,直到滚动条到头或到尾时,继续滚动弹出框仍然会导致文档的滚动。

这个问题会导致用户在隐藏弹出框返回时,页面显示不是显示弹出框前的位置。解决办法是给这个文档动态设置overflow属性,当显示弹出框时,把文档的overflow属性设置为hidden,而隐藏弹出框时,则把文档的overflow属性恢复。

当然,假如你的页面文档本身overflow属性为hidden,那就不存在滚动的问题。

这里为了方便直接,我只用JavaScript进行演示,最好的方式是通过更改class属性来完成。

JavaScript

// 显示弹出框时
document.documentElement.style.overflowY = ‘hidden‘;

// 隐藏弹出框时
document.documentElement.style.overflowY = ‘auto‘;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 10:55:14

解决模拟弹出框情况下文档滚动的问题的相关文章

弹出框背景色透明滚动条滚动仍然居中

弹出框div: <div class="webbox" style=""> <div class="webboxtop"> <span class="tstitle">发货网点(收货网点)</span> <a href="#" class="closebox"></a> </div> <div cl

解决Ext弹出框被Uedit覆盖问题

<form:textarea path="mainText" ></form:textarea> <script type="text/javascript"> var leipiEditor = UE.getEditor('mainText',{                textarea: 'text',      initialFrameWidth:1130,   zIndex:1000,    //这里可以选择自己需要

控制非模态弹出框(showModelessDialog)唯一且随父页面关闭

网站开发中,常常会遇到需要弹出窗体的情况,一般弹出框有模态和非模态两种,如下: 模态:window.showModalDialog() 非模态:window.showModelessDialog() 另外还有window.open 方法,以及通过div来模拟弹出框效果的形式. window.open请自行百度,了解不深:div模拟的方式不适用与,弹出框中某些组件与父页面组件不相容的情况,如笔者所在项目,父页面中的jquery与整个网站js框架不相容(当然不是简单的可以通过替换$关键字来解决).所

python + selenium webdriver 通过python来模拟鼠标、键盘操作,来解决SWFFileUpload调用系统底层弹出框无法定位问题

Webdriver是基于浏览器操作的,当页面上传文件使用的是flash的控件SWFFileUpload调用的时候,调用的是系统底层的文件选择弹出框 这种情况,Webdriver暂时是不支持除页面外的其他操作 前期尝试过很多种方法,比如send_keys("path"),但是都无法解决 虽然Webdriver无法对底层进行操作,但是Python的扩展是可以的 通过模拟鼠标.键盘的操作,可以解决这个问题,但是这个方法比较笨,而且不怎么理想,如果有好的方法,请留言给我,谢谢! 解决方法: 1

经验总结:WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

经验总结:WebBrowser自动点击弹出提示框alert.弹出对话框confirm.屏蔽弹出框.屏蔽弹出脚本错误的解决办法 网上有好多解决方法,可是不一定好使,本人经过多次试验,针对WebBrowser控件中自动点击弹出框及禁用脚本提示问题得到如下几种实际情况的解决办法,绝对管用. 1.屏蔽弹出错误脚本 将WebBrowser控件ScriptErrorsSuppressed设置为True即可. (参考本篇博客:http://www.cnblogs.com/qqflying/archive/20

SAP 本地文件上传到内表 sap gui 安全性弹出框 解决方法 .

本地上传文件到内表时候, 可以使用函数TEXT_CONVERT_XLS_TO_SAP:将xlsx,xls文件导入到内表 也可使用函数GUI_UPLOAD:将TXT文件导入到内表等   系统默认情况下,可能会产生“SAP GUI 安全性”的一个弹出框,如下图所示:   个人研究结果,如下(仅供参考) 产生原因:sap 系统对外部数据导入时候,会有一个自动的安全性提示检查. 在sap 安全性里面有个安全配置,默认的时候用的系统定制的安全配置, 会将已确认过的文件或者文件夹,加入到安全配置列表里面,遇

Visual Studio 打开解决方案后 弹出框显示 &quot;正在打开文件...&quot; 迟迟没反应 的解决方法

Visual Studio 打开解决方案后 弹出框显示 "正在打开文件...",任务管理器的devenv进程又很正常,不会显示"未响应". 而IDE的左下角有个 "正在等待分析完成..." 提示. 刚开始,我以为是VS插件问题,因为我刚安装了一个插件后,重启VS,打开解决方案就出现这个问题了,所以我以为是VS插件问题. 后来我把VS插件通通卸载了,把/ResetAddin /ResetSkipPkgs /ResetSettings 之类的deve

QTP录制后弹出框一个或多个ActiveX控件无法显示的解决方法

制一段脚本代码,在专家视图窗口中编辑录制的脚本代码时,会碰到弹出一个对话窗口,提示为"当前安全设置禁止运行该页中的ActiveX 控件,因此,该页可能无法正常显示"类似的东西,而在人工操作时却没有这样的现象.(如图) 问题主要出在于QTP设置本身,之所以在编辑录制好的脚本时,QTP出现关于Active的对话提示窗口,问题在于QTP的设置,要消除该提示窗口.应对QTP作如下设置:toos–options–Active Screen–Advanced–点选Load ActiveX cont

解决使用MathJax时弹出框显示MathJax no longer loads a default configuration file的问题~

解决使用MathJax时弹出框显示MathJax no longer loads a default configuration file的问题~ MathJax no longer loads a default configuration file 2down votefavorite I have been getting this error message on Maths and Physics network MathJax no longer loads a default co