2012-09-02 128 views
1

的Joomla模塊,我想找到一種方法來動態調整基於主含量高的模塊數數。這是可能的和如何?在CSS? javascript?調整的基於內容的高度

的目的是爲了避免空白頁,如果沒有內容。

在此先感謝

凡妮莎

+0

你需要某種CSS或JS爲父div,使其高度調整accroding它? –

回答

1

這可以以多種方式完成,一些比其他人更優雅。 我能想到的最簡單的就是隻使用Javascript:

  1. 所有的模塊內容都是在HTML中發送的。 (如現在)
  2. 獲取主要內容的高度。
  3. 雖然主要內容高於模塊高度,但刪除最後一個模塊。

是這樣的:(代碼未測試)

window.addEvent('domready', function() { 
    // Get heigth of main content 
    var contentHeight = document.id('content').getHeight(); 

// While the height of the main content is more than 200 
// and less than the height of the modules 
    while(contentHeight > 200 && contentHeight < document.id('modules').getHeight()) { 
     // Get the last module and remove it. 
     $$('#modules .moduletable').getLast().dispose(); 
    } 
}); 

注意,這裏假設你使用mootools的(這可能是已經被你的Joomla安裝時提供)。另外,我的元素選擇器可能無法使用您的模板。

再次,服務器仍然會發送所有模塊,即使有些是被刪除。另一件事是,當你的網頁的DOM完全加載時,這將開始,這意味着用戶可能會看到模塊消失。因此,在開始時隱藏所有模塊也可能更好,然後使用類似的循環逐個顯示模塊。

編輯: 你可能更喜歡另一個樣本。

window.addEvent('domready', function() { 
    // Get heigth of main content 
    var contentHeight = document.id('gkContent').getHeight(); 

    // While the height of the modules is more than 500 
    // and less than the height of the modules 
    while(document.id('gkRight').getHeight() > 500 && contentHeight < document.id('gkRight').getHeight()) { 
     // Get the last module and remove it. 
     var banners = $$('#gkRight .adsense2, #gkRight .bannergroup'); 
     if(banners.length > 0) banners.getLast().dispose(); 
     else break; 
    } 
}); 
+0

嗨 我已經適應了我的網站,但不工作: 你可以看看這個網頁:http://www.auxaffaires.fr/index.php/4-sorties-loisirs/143-velorail-du-bourbonnais-offrez –

+0

對不起,我的錯!我忘了在「document.id(」modules「)之後添加」.getHeight()「..我已經編輯了答案。 –

+0

好吧,它的工作原理我需要調整一些參數來壯舉我的模塊,但現在我明白系統非常感謝! –