jquery.ui.dialog 1.81在IE8中出现滚动条bug解决方法
最近在做web用户体验方面的东东,因主管和老板一致赞同使用Jquery插件,因此现有的项目中使用了jquery的技术,在使用jquery插件的过程中遇到一些问题,与大家分享一下.
前一段时间使用jquery.validate 1.7.插件时,remote验证异常,后来修改部份源文件才解决.今天 在使用jquery.ui.dialog.js(jQuery UI Dialog 1.8.10) 做lightbox效果,出现了一些小问题,例如设置 modal:true属性,在IE8中 open dialog 会出现滚动条(open之前是没有的),close dialog后,窗口恢复正常.
前一段时间使用jquery.validate 1.7.插件时,remote验证异常,后来修改部份源文件才解决.今天 在使用jquery.ui.dialog.js(jQuery UI Dialog 1.8.10) 做lightbox效果,出现了一些小问题,例如设置 modal:true属性,在IE8中 open dialog 会出现滚动条(open之前是没有的),close dialog后,窗口恢复正常.
1.注释掉js文件中控置"背景层"宽、高的代码,改由css文件控制.
2.在open dialog时将overflow设为hidden, close dialog时将overflow设为auto。
这两种方案都能够解决问题,但并非从问题的症结处解决.如果能够找到造成该原因的代码,从源处修改,那样会更好(其实问题很明了).
分析: open dialog 出现滚动条是因为内容区("背景层")尺寸超出了父容器大小.因此只需在jquery.ui.dialog.js 源文件中,找到创建"背景层"的代码,将宽高调整到合理范围就可以了,如下是创建"背景层"部份: