Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Script altezza colonne in joomla

    Ciao a tutti, sto realizzando un sito internet in joomla ed avrei bisogno di una mano per realizzare un piccolo script che mi permetta di regolare in automatico (al caricamento della pagina internet) l'altezza delle colonne che costituiscono la parte centrale del mio template...
    Chi riesce a darmi una mano???
    Ho già visto gli script caricati qui su html.it ma, da quel poco che ho capito, mi sembra che per funzionare devi fare click su di un link per attivarli... Io invece vorrei che il tutto avvenisse in maniera automatica...
    Intanto grazie!!!
    L'index.php è così strutturata:
    codice:
     
    <div id="main-area"> 
    <?php if($this->countModules('position-6')) : ?>
    <div id="position-6">
    <jdoc:include type="modules" name="position-6" style="xhtml" />
    </div>
    <?php endif; ?>
    <div id="main-content">
    <jdoc:include type="message" />
    <jdoc:include type="component" />
    </div>
    <?php if($this->countModules('position-7')) : ?>
    <div id="position-7">
    <jdoc:include type="modules" name="position-7" style="xhtml" />
    </div>
    <?php endif; ?>
    <div id="spacer"></div>
    </div>

  2. #2
    Mi rispondo da solo! Ho avuto modo di spulciare il web e, basandomi su di una guida, mi sono creato il mio script. A me funziona (testato con chrome, fireforx e IE9, nel fine settimana testerò il risultato su opera, safari e ie 7/8).

    Ecco il codice utilizzato:
    codice:
    addLoadListener(equalHeight);
    function equalHeight() { 
    /*Memorizzo riferimento agli id delle posizioni*/
    var LeftColumnId = "left";
    var MainContentId = "main-content";
    var RightColumnId = "right";
    var LeftColumn = document.getElementById(LeftColumnId);
    var MainContent = document.getElementById(MainContentId);
    var RightColumn = document.getElementById(RightColumnId);
    /*Calcolo l'altezza dei tre elementi*/
    var LeftHeight = LeftColumn.offsetHeight; 
    var MainContentHeight = MainContent.offsetHeight; 
    var RightHeight = RightColumn.offsetHeight; 
    /*Calcolo bordi e padding dei tre elementi (string px)*/ 
    var LeftBorderTopPixels = retrieveComputedStyle(LeftColumn, "borderTopWidth"); 
    var LeftBorderBottomPixels = retrieveComputedStyle(LeftColumn, "borderBottomWidth"); 
    var LeftPaddingTopPixels = retrieveComputedStyle(LeftColumn, "paddingTop"); 
    var LeftPaddingBottomPixels = retrieveComputedStyle(LeftColumn, "paddingBottom"); 
    var MainContentBorderTopPixels = retrieveComputedStyle(MainContent, "borderTopWidth");
    var MainContentBorderBottomPixels = retrieveComputedStyle(MainContent, "borderBottomWidth"); 
    var MainContentPaddingTopPixels = retrieveComputedStyle(MainContent, "paddingTop"); 
    var MainContentPaddingBottomPixels = retrieveComputedStyle(MainContent, "paddingBottom"); 
    var RightBorderTopPixels = retrieveComputedStyle(RightColumn, "borderTopWidth"); 
    var RightBorderBottomPixels = retrieveComputedStyle(RightColumn, "borderBottomWidth"); 
    var RightPaddingTopPixels = retrieveComputedStyle(RightColumn, "paddingTop"); 
    var RightPaddingBottomPixels = retrieveComputedStyle(RightColumn, "paddingBottom"); 
    /*Memorizzo il numero dei pixel dei bordi e del padding dei tre elementi*/ 
    var LeftBorderNumber = Number(LeftBorderTopPixels.replace("px", "")) + Number(LeftBorderBottomPixels.replace("px", "")); 
    var LeftPaddingNumber = Number(LeftPaddingTopPixels.replace("px", "")) + Number(LeftPaddingBottomPixels.replace("px", "")); 
    var LeftExtras = LeftBorderNumber + LeftPaddingNumber; 
    var MainContentBorderNumber = Number(MainContentBorderTopPixels.replace("px", "")) + Number(MainContentBorderBottomPixels.replace("px", "")); 
    var MainContentPaddingNumber = Number(MainContentPaddingTopPixels.replace("px", "")) + Number(MainContentPaddingBottomPixels.replace("px", "")); 
    var MainContentExtras = MainContentBorderNumber + MainContentPaddingNumber; 
    var RightBorderNumber = Number(RightBorderTopPixels.replace("px", "")) + Number(RightBorderBottomPixels.replace("px", "")); 
    var RightPaddingNumber = Number(RightPaddingTopPixels.replace("px", "")) + Number(RightPaddingBottomPixels.replace("px", "")); 
    var RightExtras = RightBorderNumber + RightPaddingNumber; 
    /*Calcolo l'altezza maggiore dei tre elementi: */ 
    if (LeftHeight > MainContentHeight){ 
    //Left è più alta di MainContent 
    //Left è più alta anche di Right? 
    if(LeftHeight > RightHeight){ 
    //Left è la più alta 
    MainContent.style.height = (LeftHeight - MainContentExtras) + "px"; 
    //Imposto altezza MainContent 
    RightColumn.style.height = (LeftHeight - RightExtras) + "px"; 
    //Imposto altezza Right 
    } else{ 
    //Right è la più alta 
    LeftColumn.style.height = (RightHeight - LeftExtras) + "px"; 
    //Imposto altezza Left 
    MainContent.style.height = (RightHeight - MainContentExtras) + "px"; 
    //Imposto altezza MainContent 
    } 
    } 
    else{ 
    //MainContent è più alta di Left 
    //MainContent è più alta alta anche di Right? 
    if(MainContentHeight > RightHeight){ 
    //MainContent è la più alta 
    LeftColumn.style.height = (MainContentHeight - LeftExtras) + "px";
    //Imposto altezza Left 
    RightColumn.style.height = (MainContentHeight - RightExtras) + "px"; 
    //Imposto altezza Right 
    } else{ 
    //Right è la più alta 
    LeftColumn.style.height = (RightHeight - LeftExtras) + "px";
    //Imposto altezza Left 
    MainContent.style.height = (RightHeight - MainContentExtras) + "px"; 
    //Imposto altezza MainContent 
    } 
    } 
    } 
    function retrieveComputedStyle(element, styleProperty){ 
    var computedStyle = null; 
    if (typeof element.currentStyle != "undefined"){ 
    computedStyle = element.currentStyle; 
    } else{ 
    computedStyle = document.defaultView.getComputedStyle(element, null); 
    } 
    return computedStyle[styleProperty]; 
    } 
    
    function addLoadListener(fn){ 
    if (typeof window.addEventListener != 'undefined'){ 
    window.addEventListener('load', fn, false); 
    } else if (typeof document.addEventListener != 'undefined'){
    document.addEventListener('load', fn, false); 
    } else if (typeof window.attachEvent != 'undefined'){ 
    window.attachEvent('onload', fn);
     } else{ 
    var oldfn = window.onload; 
    if (typeof window.onload != 'function'){ 
    window.onload = fn;
     } else{ 
    window.onload = function(){ 
    oldfn();
     fn();
     };
     }
     }
     }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.