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:
  1. jQuery(window).bind( 'resize'function() {  
  2.     mobilizeMe();  
  3.     heightCorrect();  
  4.     if (link == 'index') {  
  5.         sectHeadline();  
  6.     }  
  7. });  
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:
  1. function docSize() {  
  2.     var dheight = $('body').height(),  
  3.         cbody   = $('.container').height(),  
  4.         wheight = $(window).height(),  
  5.         cheight = wheight - dheight + cbody;  
  6.     function changepush() {  
  7.         if (wheight > (dheight + 1)) {  
  8.             $('.container').height(wheight-dheight+cbody);  
  9.         } else {  
  10.             $('#sidebar').height($('#main').height()+58*2);  
  11.         }  
  12.     }  
  13.     function noscroll() {  
  14.         if (wheight > dheight) {  
  15.             $('body').addClass('noscroll');  
  16.         }  
  17.         else if (wheight <= dheight) {  
  18.             $('body').removeClass('noscroll');  
  19.         }  
  20.         else {}  
  21.     }  
  22.     if (wheight > dheight){  
  23.         $('.container').height(cheight);  
  24.         $('#sidebar').height(cheight - 58);  
  25.     }  
  26.     changepush();  
  27.     noscroll();  
  28. }  
  29.   
  30. function heightCorrect() {  
  31.     if(jQuery('.container').width() > 556 ) {  
  32.         wheight = $(window).height();  
  33.         docSize();  
  34.     }  
  35. }  
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.