Autor Zpráva
Strongmann
Profil
Dobrý den,
potřebuji aby se při načtení a změně okna měnili určité parametry (velikost obrázku atd.) Používám na to funkci $(window).on("load resize", function() {}); (respektive $(window).on "load resize", -> coffeescript) ovšem v Google Chrome jde vše ok ale v IE 8 se vše jaksi se** :(. Nevím, v čem je zakopaný pes. http://www.nicnezvoda.cz/index4.html Za jakékoli rady a připomínky děkuji.
Chamurappi
Profil
Reaguji na Strongmanna:
Explorer 8 s onresize žádný problém nemá.

ale v IE 8 se vše jaksi se** :(
Tak najdi chybu a oprav ji. Nevím, jak ostatní, ale já z tohoto tvého důkladného popisu nepochopil, v čem problém spočívá…

respektive $(window).on "load resize", -> coffeescript
Překládat jiný jazyk do JS na straně klienta je neefektivní prasárna. Jsi si jistý, že chyba není v tomhle?
Strongmann
Profil
Chamurappi:
Dobrá tedy,
takže můj problém je že funkce onresize se v IE8 vykoná po kliknutí na kterýkoli odkaz aniž by se změnila velikost okna, zatím co v Chromu tato funkce se korektně vykoná jen při změně velikosti okna. A v coffeescriptu je to jen teď až budou stránky hotové tak bude vše v javascriptu, ale to na funkčnost momentálně nemá vliv.
Kcko
Profil
Strongmann:
Když to přepíšeš takhle, funguje to?

    <div id="test">
        

    </div>


    <script>
    $(window).on("load", function(){

        var $this = $(this);
        $this.resize(function(){

            $("#test").text("Zmenšuji -> " + $this.width());


        });

    });
    </script>


Jinak to měnit takhle přes JS je celkem zhůvěřilost, nestačilo by to měnit přes CSS a media queries?
Strongmann
Profil
Kcko:
Tak pokud tohle přidám do stránek tak v Chromu vše OK a v IE8 okamžitě vyskočí: Změnšuji -> xxxx ihned při načtení stránky.
Chyba je v tomto:
window.onload = new function() {
  var $bg, aspectRatio, resizeBg, theWindow;
  resizeBg = function() {
    if ((theWindow.width() / theWindow.height()) < aspectRatio) {
      return $bg.removeClass().addClass("bgheight");
    } else {
      return $bg.removeClass().addClass("bgwidth");
    }
  };
  theWindow = $(window);
  $bg = $("#bg");
  aspectRatio = $bg.width() / $bg.height();
  return theWindow.resize(resizeBg).trigger("resize");
};
což mi roztahuje obrázek na pozadí, když tento kód odstraním tak to reaguje na změnu okna ovšem i při prokliku přes odkazy v menu :(. A media queries slyším prvně, kouknu o co de...
Strongmann
Profil
http://www.nicnezvoda.cz/indexc.html
mám div logo-menu vycentrovaný na střed a to vertikálně i horizontálně, ale aby to tedy bylo na středu tak musím mít určenou jak výšku tak šířku tohoto divu ovšem logo uprostřed je nastaveno procenty a omezeno min-width a max-width jenomže pokud se logo zvětší tak se div logo-menu nepřizpůsobý protože výška je předem v css definována dá se toto elegantněji vyřešit než jak to mám já? Je k tomu potřeba javascript? A ty animace, které tam mám (přechody - předešlí odkaz) ty předpokládám jinak než javascriptem nejdou vyřešit že? Všechno by to bylo o moc lehčí kdyby se dalo css udělat dynamicky (proměnné, matematické operace atd.) Za rady děkuji
Kcko
Profil
Strongmann:
Ten kód je pro mě španělská vesnice (resp. není moc smysluplný a pochopitelný a na delší debug jsem unavený).

Podívej se jak se dají centrovat elementy na stránce http://jecas.cz/centrovani a pokud vše nastavíš v % , nemusíš už pak používat JS.
A ten js kód sis napsal sám? Je taky celkově nějak divný (míchání jquery s nativním JS do sebe ... a takovýmto způsobem).

Vyfikni smysluplnější CSS a pak můžeme řešit dále.
_es
Profil
Strongmann:
aby se při načtení a změně okna měnili určité parametry (velikost obrázku atd.)
Na toto nemá slúžiť JS ale CSS.
1Pupik1989
Profil
To je jasný že se provede hned při spuštění, vyhoď to "new" před funkcí. Jinak totiž slouží jako konstruktor a vytvoří se hned po načtení skriptu.

Ale jak tu píší, předěl to do css, pokud nebudeš používat html5 elementy jako je canvas.

Celý ten kód je jaksi zvláštní. Hlavně ty returny.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: