解决Ext.Window放大关闭后滚动条消失和滚动页面时最大化Window位置的方法
应用场景:
一个表格列表,点击表格上的某一行,弹出一个Ext.Window显示其他资料。(修改、显示详情等等),如下图:很多情况下我们只是使用Ext的某一些功能,如Ext.Window.在你的页面长度没有越过一页,即没有滚动条的时候,使用Ext.Window是不会有任何问题的。但当你的页面长度超过一页,有滚动条时,使用Ext.Window会出现以下两个问题:
你可以试用一下: http://extjs.org.cn/extjs/mydemo/0007_window_position_error.html1、Ext.Window放大后,再点击关闭按钮,页面右边的滚动条会消失,出现一条白边,页面不能滚动了。如下图:
2、向下拖动页面至某一个地方,弹出一个Ext.Window,这个时候如果点击放大,窗体会放大,但位置在最顶上,这时候你什么也不能操作,只能重新刷新页面。如下图解决办法其实很简单,只要在Window中添加两个listeners就可以了。
listeners: {
- close:function(w){
- //关键部分:关闭窗口前先还原,滚动条才不会消失
- w.restore();
- },
- maximize:function(w){
- //关键部分:最大化后需要将窗口重新定位,否则窗口会从最顶端开始最大化
- w.setPosition(document.body.scrollLeft,document.body.scrollTop);
- }
- }