Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter
    nagyúr

    Köszi. Végeredményben az volt a lényeg, hogy nem csak JS alatt lehet ilyen izgő-mozgó menüket létrehozni.

    Ami a főoldalt illeti: totálisan kikapcsolt JS mellett (nem csak noscript, hanem a FF opciók közt letiltott JS mellett is) működik a feliratok változtatása. A nyelv nem jelenik meg mellette, csak ha engedélyezem a JS-t, de aláhúzódik stb. Gondolom, ez is ugyanaz a módszer, mint a belső menü esetén.
    (ettől kezdve már csak az a kérdés, hogy eszerint a CSS is tud olyan ártalmas lenni, mint a javascript? )

    Hát eddig azt hittem, hogy azt mondod, hogy kikapcsolt JavaScripttel is megjelenik a lebegő nyelv... :N Na de akkor már teljesen egyértelmű, hogy Te a CSS-formázásra gondolsz: ebben nincs semmi misztikum, ma már a legtöbb oldalon többek közt ezzel adják meg az oldal stílusát, kinézetét, a margókat, stb.
    A CSS is fejlődés alatt van, az újabb verzióban még több formázási lehetőség lesz elérhető, mint a mostaniban: lekerekíthető sarkok, árnyékolás a "dobozoknak" trükközés nélkül, meg egyebek, amiknek valóban van gyakorlati haszna.

    "ettől kezdve már csak az a kérdés, hogy eszerint a CSS is tud olyan ártalmas lenni, mint a javascript?"
    Már miért lenne ártalmas? :Y Ezt tényleg nem értem...

    Mellesleg a CSS-formázás sokkal elegánsabb tud lenni, mint ugyanaz JavaScripttel, erre legjobb példa a menüknél, ha arra állítasz be stílust, hogy ha egy elem fölé viszed az egeret, akkor egy másik kép jelenjen meg annak háttereként (ha föléviszed az egeret, akkor mondjuk kap egy világosabb háttérszínt a menü adott gombja) - ez JavaScripttel megoldva (onmouseover, onmouseout) az Internet Explorernek még a 8-as változatában is egy kis átmeneti villanást eredményez, vagyis a képváltás viszonylag lassan történik meg, míg CSS-sel megoldva (elem:hover) nincs ilyen probléma (vagy jóval rövidebb a villanás, erre megoldás a következőkben leírt módszer), és a kód is szebb. Ráadásul az is megoldható, hogy a menüpont alap- és világosabb hátterét egy képfájlban egymás mellé/fölé/alá pakold, és amikor föléviszed az egeret, akkor csak arrébb told a megfelelő pozícióba a hátteret, úgy, hogy akkor már a világosabb háttér jelenjen meg - így meg garantáltan nem lesz minimális "villanás" (háttércsere-késés) sem, tapasztaltam.
    A CSS nagyon előnyös tud lenni.

  • Sk8erPeter
    nagyúr

    Hóttmind1, mert a főoldalon is megváltozik a felirat, ha fölé viszem az egeret.
    Úgy értem: kikapcsolt/tiltott JS mellett is.

    Most kikerestem neked, konkrétan mi felelős a menü megjelenítéséért:

    Forráskód:
    229. sor:
    <li onmouseout="ddMenuHide();" onmouseover="ddMenuShow('2758','off','global','0.8');" class="tab offmenu" id="dd-menu_2758_lnk"><a href="/emea/2758.html" id="dd-menu_2758_anc"><span>• </span>Partners</a>
    <ul id="dd-menu_2758" class="dd-menu">

    Ebből a class="tab offmenu" és class="dd-menu" a lényeg: utána a CSS-fájlban ezekre vonatkozóan ez szerepel:
    http://www.sonicwall.com/emea/styles_global.css

    655. sor (kommentbe tettem, ami a lényeg ez egészből):
    .navbar .dd-menu,
    .navbar .fo-menu {
    display: none; /* EZ A LÉNYEG! */
    position: absolute;
    top: 2.26em;
    left: 0.09em;
    z-index: 51;
    background: #eee;
    border: .09em solid;
    border-left-color: #eee;
    border-top: none;
    border-right-color: #707070;
    border-bottom-color: #707070;
    background: #c2c2c2;
    }

    730. sortól:
    .navbar .tab.offmenu:hover .dd-menu,
    .navbar .tab.onmenu:hover .dd-menu {
    display: block; /* EZ A LÉNYEG! */
    }

    Alapból: display:none; (nem látható), egér fölévitelekor display:block; lesz (megjelenik).
    Ennyi a trükk. :)

    ----
    A főoldalon pedig egyértelműen JavaScripttel oldják meg (tehát szerintem nálad a JavaScript kikapcsolásakor a NoScript valamilyen hibája miatt jeleníti meg, vagy valami egyéb hiba miatt):
    Forráskód:
    248. sor:
    <h5><span id="lang_01" class="lang">English</span><a name="North America" href="/us/" onmouseover="showLang('01');" onmouseout="hideLang();" onClick="SetCookie('site', this.name, exp);"><span class="arrow">&raquo;</span> North America</a></h5>

    177. sor:
    #countryselectlist .lang {
    display: none;
    width: 12em;
    position: absolute;
    top: 0.25em;
    left: -13em;
    text-align: right;
    }

    Emiatt tehát alapból display:none; van beállítva neki, vagyis nem jelenik meg.
    Az onmouseover-re (fölé viszed az egeret) a JavaScript megváltoztatja display:block;-ra (megjelenik, látható), mert meghívja a showLang() függvényt, majd onmouseout-ra (elviszed róla az egeret) ismét display:none lesz a stílus a hidelang() függvény meghívása miatt:
    214. sor:
    <script language="javascript" type="text/javascript">
    var SpanID = '';
    function showLang(ID) {
    SpanID = ID;
    document.getElementById('lang_'+SpanID).style.display = "block";
    }
    function hideLang() {
    document.getElementById('lang_'+SpanID).style.display = "none";
    }
    </script>

    Remélem sikerült tisztázni a kérdést, hogy mitől jelenik meg. :)

  • Sk8erPeter
    nagyúr

    Hóttmind1, mert a főoldalon is megváltozik a felirat, ha fölé viszem az egeret.
    Úgy értem: kikapcsolt/tiltott JS mellett is.

    FF-ban Nézet-Oldalstílus-Nincs stílus egészen biztosan megoldja a problémádat... ;]

  • Sk8erPeter
    nagyúr

    Ezért gyanítom, hogy valahol le vagyunk maradva a HTML-féleségek környékén... :)
    Flash nem lehet, mert az nem műxik, ha le van tiltva a JS.

    Most látom ezt a hsz.-edet: [link]
    :W :W Eddig a főoldalt mutogattad, hogy ott megjelennek a szövegek, de miért nem ezzel kezdted? Itt a menü megjelenítése CSS-sel van megoldva... :U Máskor talán legyél egyértelműbb, és akkor hamarabb kapod meg a választ, és nem kell ötezerszer megkérdezni...
    Senki nincs lemaradva, csak nem tudtad feltenni normálisan a kérdést. Eddig nem azt mondtad, hogy a http://www.sonicwall.com/emea oldalt kellene bambulni, azonbelül is a menüsor megjelenését, hanem a főlapot linkelgetted...

  • EmberXY
    veterán

    Ezért gyanítom, hogy valahol le vagyunk maradva a HTML-féleségek környékén... :)
    Flash nem lehet, mert az nem műxik, ha le van tiltva a JS.

    Hát nincs kizárva, hogy valami kimaradt... :D
    Bár mostanság elkezdtem js-sel foglalkozni, de még rengeteget kell tanulnom, hogy ne érjenek ilyesféle meglepetések...bár így is elég sok fura dologgal találkoztam már, pl hogy megírok egy scriptet, és vagy az IE, vagy a FF nem hajlandó végrehajtani... :D
    Mindig van új a nap alatt, de ezzel a "letiltom, de mégis megy" dologgal bevallom, én sem tudok jelenleg mit kezdeni.. :(((
    :R

  • EmberXY
    veterán

    Nem teljesen... Nyelveket ott nem is láttam (jelzem, noscript műxik :) ), csak azt, hogy az egérkurzortól aláhúzottra vált a menüpont, de ha eggyel beljebb mész (pl. http://www.sonicwall.com/emea/), ott a komplett menü működőképes.

    Ez tényleg egy fura oldal... számomra is paranormális, de valóban minden műxik tovább.. biztos, hogy JS ez? :F :DDD :DD Még a végén azt hinné az ember, hogy flash.. :D

    Egyébként amire én gondoltam, az a képen látszik, odarak egy nyelvet, amit a js letiltása után már nem jelenít meg, ekkor még én is azt hittem, hogy mindent értek, de akkor már ketten vagyunk... :DDD
    :R

  • EmberXY
    veterán

    Mondjuk én Vista alatti FF-t néztem, de most kipróbálom XP alól is egy 3.5-össel, kíváncsi vagyok, ez mit művel.

    Szerk: megnéztem. Itt is működőképes marad a menü a JS tiltása után.

    Szerk2: még akkor is, ha a JS tiltás után kilépek, majd vissza. Cache törlés után is...
    Szóval feladom. Vagy mégis CSS van a dologban - bár az nekem már a kínai kategória.

    A www.sonicwall.com oldalra gondolsz?
    Nekem normál esetben a menükön lépkedve aláhúzott lesz a menüpont, és elékerül egy nyelv megnevezés, ha letiltom a js-t, és frissítés nélkül újra próbálom, nálam az aláhúzás ugyan megmarad, de a nyelveket már nem teszi elé, vagyis letiltja ezt a dolgot, bármiféle cache ürítés nélkül is...és ahogy a pipát visszateszem a js mellé, újból megjeleníti..
    Én Win 7 alatt FF 3.6-tal próbáltam.....

  • Sk8erPeter
    nagyúr

    Mondjuk én Vista alatti FF-t néztem, de most kipróbálom XP alól is egy 3.5-össel, kíváncsi vagyok, ez mit művel.

    Szerk: megnéztem. Itt is működőképes marad a menü a JS tiltása után.

    Szerk2: még akkor is, ha a JS tiltás után kilépek, majd vissza. Cache törlés után is...
    Szóval feladom. Vagy mégis CSS van a dologban - bár az nekem már a kínai kategória.

    Hát lehet, hogy azon a gépen is fent van az az ominózus NoScript... :D

  • Sk8erPeter
    nagyúr

    Ez nem nyert... akkor már ketten vagyunk lemaradva...
    Kikapcsoltam teljesen a JS-t, ez a menü mégis működik.

    Én nem érzem magam "lemaradva"... :D
    Hát nem tudom, Te hogy csinálod, mert most épp Ubuntu alól próbáltam ki, és ugyanúgy ha kikapcsolom a JavaScriptet, akkor onnantól már nem megy... Te figyelj, nem lehet egészen véletlenül, hogy a JS kikapcsolása után nem frissítesz? :U :D Mert amíg nem frissítesz, addig működni is fog továbbra is a menü a JS kikapcsolása után is...
    Egyébként az ilyesmit már meg lehet oldani CSS-sel is, nem muszáj hozzá JavaScript. De az általad linkelt oldal esetében JS-t használnak.

  • Sk8erPeter
    nagyúr

    Valamit nem értek: www.sonicwall.com
    Le van tiltva a javascript. Hogyhogy mégis működik az oldal menüje? :F
    (FF 3.0.6 + Noscript)

    Az ilyen szerkezetek:
    <li class="tab start" onmouseover="endTabOver('global','off');" onmouseout="endTabOut();">
    működéséhez nincs szükség JS-re?

    Ha le lenne tiltva a JavaScript, NEM működnének a JS-es elemek. Az onmouseover, onmouseout JS-eseményeket hívnak meg, ez nem teljesülhet, ha le van tiltva a JavaScript.
    Ha FF alatt tényleg letiltod, neked sem fog működni: Eszközök-Beállítások-Tartalom-JavaScript engedélyezése mellől pipa ki, majd OK. Máris nem fog működni.
    Ezek szerint a NoScripted szarul van beállítva.

Új hozzászólás Aktív témák