1. 程式人生 > >ExtJS元件自適應瀏覽器大小改變

ExtJS元件自適應瀏覽器大小改變

       如果你再用ExtJS做專案,那麼你應該會遇到如標題所說的問題,比如panel,grid等元件在瀏覽器大小改變的時候,沒有自適應的改變,正常情況如圖1-1,瀏覽器大小改變後如圖1-2,摺疊按鈕不見了,這個就是因為元件沒有適應瀏覽器大小改變造成的。不知道這個算不算得上是ExtJS的bug。一般解決辦法就是通過元件自帶的doLayout方法來重新計算,相當於“重繪”吧,但是有些關於討論ExtJS效能的文章都指出了儘量不要用這個方法,由於ExtJS元件非常龐大,重新計算時很耗時間和資源的。但是如果給每個元件去加監聽的話,也很麻煩,於是我想寫個通用的方法,即使不那麼高效我也能接受。

圖1-1 正常情況


圖1-2 瀏覽器大小改變後

       一般在每個頁面會用到很多元件,沒個頁面都寫的話很費勁,可以考慮寫個通用的JS,然後每個頁面都引入就OK了,但是每個用到了哪些元件也是不確定的,不過通過ExtJS提供的事件管理和元件管理就很簡單了,程式碼如下。

Ext.onReady(function(){
                Ext.EventManager.onWindowResize(function(){
                    Ext.ComponentManager.each(function(cmpId,cmp,length){
                        if(cmp.hasOwnProperty("renderTo")){
                            cmp.doLayout();
                        }
                    });
                });
            });

       這樣就非常方便了,這裡ExtJS版本是4.2,具體各個函式是什麼意思,看API就知道了,就不贅述了。

相關推薦

ExtJS元件適應瀏覽器大小改變

       如果你再用ExtJS做專案,那麼你應該會遇到如標題所說的問題,比如panel,grid等元件在瀏覽器大小改變的時候,沒有自適應的改變,正常情況如圖1-1,瀏覽器大小改變後如圖1-2,摺疊按鈕不見了,這個就是因為元件沒有適應瀏覽器大小改變造成的。不知道這個算不算

HTML中使背景圖片適應瀏覽器大小

pub 拉伸 htm char html back 圖片 title tran 1、圖片不夠大,又background屬性不能拉伸圖片; 2、只能用個div,把其z-index值設為負,並使這個div大小為整個body大小,在div裏用<img> 3、b

easyui中datagrid適應瀏覽器大小

因為datagrid的fitColumns只有在初次載入資料的時候生效,所以在載入完資料後再改變瀏覽器大小,datagrid是不會改變大小的,只能保持在載入資料的時候的瀏覽器大小 解決方法就是動態設定fitColumns:true 這個有個弊端就是 只要改變瀏覽器大小就要重新載入,即走一遍後

【轉】超寬的banner條適應瀏覽器大小始終居中的方法

現在越來越多的人使用寬屏的顯示器了,所以傳統的1024或者960的寬度banner條也逐漸的不被客戶端訪客所喜歡,所以現在在網站前端開發中一定要考慮到這一點,但是我們會發現在寬屏瀏覽器下設計出來的banner在傳統的1024的顯示器下瀏覽是會出現橫向滾動橫條。只要在對應標籤

Qt Creator 窗體控制元件適應視窗大小布局

常見的軟體視窗大小改變(最大化、手動改變時)需要視窗的部件能夠自適應佈局,而在Qt的應用程式介面設計中,對於像我一樣的初學者如何實現視窗自適應調整還是要繞點彎路的。網上百度了很多,多數說的很含糊,還有很多是用程式實現的,既然已經有Qt Creator那麼高整合度的工具了,我還是傾向於直接在Qt Crea

讓控制元件隨窗體大小變化而變化~WinForms控制元件適應窗體大小

簡單的來說就是監控,定位+保持比例。 例如介面分為左右下三部分,其中下部分最好解決。使用Dock屬性直接定位到Bottom。難點就是上面的左右兩塊。 我的做法是:外面套一層,然後分割為左右兩部分。這裡採用TableLayoutPanel為例。將TableLayoutP

用background-size實現 背景圖片適應瀏覽器大小,但不變形

 很多flash站都用到了一張背景圖,然後根據瀏覽器大小自動縮放,但圖片不變形。在CSS3中,有屬性:background-size: cover; //只支援IE9+ -webkit-background-size: cover; //webkit核心 -moz-bac

onresize()調整瀏覽器視窗時,使圖片等控制元件適應地變化大小

今天學習JS時,按照教程裡如下程式碼實現“改變瀏覽器視窗的圖片自適應問題”,但沒有達到想要的效果,圖片在改變瀏覽器視窗的時候越變越大,重新整理頁面後又恢復原大小。 height = (document.body.clientHeight-100)*0.9; document

QT中的UI介面控制元件隨視窗適應變化大小

QT5中的UI介面 控制元件隨視窗自適應變化大小 點選UI介面檔案控制元件間的空白區域,然後選擇工具中的柵格佈局(網格佈局),點選後,它會自動調整你的控制元件大小,預設將你的widget的框長

【轉】WPF定義控制元件與樣式(13)-定義窗體Window & 適應內容大小訊息框MessageBox

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。   本文主要內容: 自定義Window窗體樣式; 基於自定義窗體實現自定義MessageBox訊息提示框; 二.自定義Window窗體樣式   自定義的Window

rem適應 窗體大小自動 rem設定 改變rem來完成等比例縮放

<body onresize="phoneResize()" onload="phoneResize()"> 當視窗大小發生改變時 </body> // 設

讓Flash適應瀏覽器螢幕大小的幾種方法

讓Flash自適應瀏覽器螢幕大小 作者:sutroon   型別:閃吧BBS   來源:閃吧個人空間   要讓flash自適應瀏覽器螢幕大小需要做到以下兩點: 1、swf檔案隨著瀏覽器螢幕大小也相應改變大下; 方法:在網頁裡除了放你的swf檔案外不要放其他的任何內容,並且

QT5中的UI介面 控制元件隨視窗適應變化大小 無需寫任何程式碼!

      為完成BOSS交給我的在QT中整合OSG開發環境,做出QT介面,之前一直用UI介面檔案做。如下圖所示。左側是widget框,右邊是2個scrollarea,之前介面預設大小不大,執行後點擊

ReactNative之Image元件適應高度,圖片適應大小

因為在現在0.50包括之前的ReactNative版本,Image元件必須要設定寬高才能顯示。所以在圖片寬高不確定的情況下,如何來讓圖片自適應螢幕高度呢?需求原因:因為做商城詳情頁面的圖片長短不一,所以要自適應圖片顯示高度。這個需求就產生了。以下方法:getSize方法 傳入

Qt中窗體控制元件按照比例縮放,適應視窗大小進行佈局

    最近在做本科畢設,用到了Qt,無奈本人實在是太過於小白了,很多東西都進行了很久的探索,比如今天說到的窗體控制元件佈局...一把辛酸淚     首先就是建立一個GUI檔案,然後進行UI設計,這裡就只需要從左邊進行拖拽,這個很easy啦...     然後對其進行佈局

PyQt5 QTableWidget(表單控制元件適應視窗大小、欄位大小調整及佈局(一)

目錄 前言 前言 還好,我有C++ Qt Help(幫助文件)O(∩_∩)O哈哈~ 本文旨在介紹QTableWidget(表單控制元件)的自適應視窗大小、欄位大小調整及佈局。 用QtDesigner設計UI 1. 先用QtDe

Jquery使容器適應瀏覽器窗口

cti -s meta 方法 jquer charset mar utf-8 ava 一、幾個關鍵點 1:當文檔大小改變時可以通過哪個事件來觸發? resize([Data], fn) 可傳入data供函數fn處理。 示

讓div適應瀏覽器窗口居中顯示

col style comm 適應 http img relative 水平 mar 讓div自適應瀏覽器窗口居中顯示 轉載自:http://www.cnblogs.com/qiye2016/p/5492983.html 今天做 banner 時發現一個問題,就是

背景圖適應瀏覽器窗口兩種方式分享

set spa body 自適應 clas har 窗口 ges pre 方式一:<html> <head> <meta charset="UTF-8"> <title></ti

wpf讓圖片適應容器大小,而且又不會拉昇變形

1 <Grid Grid.Column="3" 2 Margin="0,4,0,0" 3 Background="Black"> 4 <Viewbox> 5