ugrás a tartalomhoz

Window "size-change" elkapás jqueryvel

Creative · 2012. Júl. 19. (Cs), 09.39
Üdv!

Nos a cím lehet kissé megtévesztő, ezért bele is vágok a közepébe, hogy érthetővé válljon.
Adva vagyon egy függvény, mely a weboldal láblécét igazítja dinamikusan a böngészőablak aljához, ha a generált tartalom kissebb, mint a böngészőablak magassága. Vagyis többek közt ezt is csinálja... a lényeges, hogy méretváltáskor (húzogatom egérrel) lefutnak a függvények, azonban ha a címsoron lévő teljes méretre klikkelek, a script nem észleli ezt a változást, így nem fut le a függvény. Másolom a kódrészletet:
        jQuery(window).bind( 'resize', function() {
            mobilizeMe();
            heightCorrect();
            if (link == 'index') {
                sectHeadline();
            }
        });
Természetesen próbáltam a jól bevállt jQuery(window).resize -t is, egyszerűen ez kicsit szimpatikusabb volt :) Az idevágó függvények, amiket behív, pedig ezek:
function docSize() {
    var dheight = $('body').height(),
        cbody   = $('.container').height(),
        wheight = $(window).height(),
        cheight = wheight - dheight + cbody;
    function changepush() {
        if (wheight > (dheight + 1)) {
            $('.container').height(wheight-dheight+cbody);
        } else {
            $('#sidebar').height($('#main').height()+58*2);
        }
    }
    function noscroll() {
        if (wheight > dheight) {
            $('body').addClass('noscroll');
        }
        else if (wheight <= dheight) {
            $('body').removeClass('noscroll');
        }
        else {}
    }
    if (wheight > dheight){
        $('.container').height(cheight);
        $('#sidebar').height(cheight - 58);
    }
    changepush();
    noscroll();
}

function heightCorrect() {
    if(jQuery('.container').width() > 556 ) {
        wheight = $(window).height();
        docSize();
    }
}
Mint látható, a sidebart szeretném akkora magasságúra növelni, amekkora a tartalmi content rész, mivel benne található egy, az aljához igazított tag, mely a lábléc fölött helyezkedik el. Az 58 pedig a lábléc magassága jelen esetben ^^
Tehát a probléma, hogy mikor teljes méret/előző méret között kattintással váltok, akkor a függvény nem fut le, a sidebar is csak akkora magasságú marad, mint kisnézetben volt. Nem tudom valaki tudja-e, hogy lehet eme eseményt jól elkapni és aztán adni neki a képébe.. de nagyon megköszönném :) A kommenteket pedig előre is köszönöm!

C.
 
1

CSS

Poetro · 2012. Júl. 19. (Cs), 10.00
És miért nem CSS-sel csinálod meg? Miért kell ehhez JavaScript?
2

Nos

Creative · 2012. Júl. 19. (Cs), 10.05
hülyén hangozhat, de ha vért izzadok s bevetem minden tapasztalatomat, se hajlandó az igazítást és magasságot jól belőni :( Lehet a modernizr gubancolja be, nemtudom igazából. Azért gondolok csak erre, mert pl IE8 alatt a modernizr be se tölti a nagy részét, pedig direkt nézem. Ettől az egy problémától eltekintve tökéletesen működik a gépezet, csak ezeket nem eszi meg css-ből

C.
3

modernizr

Hidvégi Gábor · 2012. Júl. 19. (Cs), 10.38
Miért van szükséged a modernizr-re?

A problémát egyébként valóban meg lehet oldani pusztán css-ből.
4

Furcsa

Pepita · 2012. Júl. 20. (P), 01.54
Furcsa, hogy a rendszermenüvel nem váltódik ki u.az a js esemény. Ugyanis windows alatt minden (-fajta) átméretezéskor keletkezik egy wm_resize üzenet, amit megkap az alkalmazás ablaka is. Gyanítom, hogy a többi oprendszer alatt is hasonlóképp van, különben horribilis munka lenne egy progit több platformra lefordítani. Szóval a böngészőnek tutira ugyanaz a kettő, azt viszont nem tudom, hogy a js-nek miért nem.

De csatlakozom előttem szólókhoz: én is csak css-el csinálnám.