Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2014-02-25 10:20:57

LOGOUT.hu

JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)

Összefoglaló kinyitása ▼

Hozzászólások

(#1601) EmberXY válasza Zoli1222 (#1600) üzenetére


EmberXY
addikt

Elnézést, hogy belekontárkodok, de hátha tudok én is segíteni, ha már erre járok.. :D
Ha jól értelmezem a dolgot, akkor 3 értéket szeretnél bekérni, amikkel azután a script elvégzi a számításokat..
Én 3 szövegmezőt adnék meg, az adott űrlapon, értelemszerűen a 3 érték bekéréséhez, testreszabás már részletkérdés, csak legyen elnevezve mindegyik (mezo1, stb) majd a váltózókat úgy hoznám létre, hogy
var a=parseInt(document.form_neve.mezo1.value);
var b=parseInt(document.form_neve.mezo2.value);
var c=parseInt(document.form_neve.mezo3.value);
(ha tizedestört is lehet az érték, akkor parseFloat...), így a változók azt az értéket fogják tartalmazni, amit beírtál az egyes mezőkbe..
Aztán persze különféle ellenőrzéseket be lehet iktatni, hogy csak helyes formátumot vihessenek a mezőbe, ne írkálhassanak be mindenféle karaktereket, stb, de ez már részletkérdés..
Remélem, hogy segítettem. :R

[ Szerkesztve ]

Up the Irons!

(#1602) j0k3r!


j0k3r!
senior tag

hello mindenkinek!

vannak divjeim:

<div id="fodiv">
<div id="bal">szoveg</div>
<div id="kozepso">szoveg</div>
<div id="jobb">szoveg</div>
</div>

az volna a kerdesem, hogy js-ben hogy hivatkozok a kozepso div backgroundjara. (meg akarom valtoztatni egy onclick esemeny soran)
a segitsegetek elore is koszonom.

some men just wanna watch the world burn...

(#1603) j0k3r! válasza j0k3r! (#1602) üzenetére


j0k3r!
senior tag

megoldottam:

<script language="javascript" type="text/javascript">
function szincsere(color)
{
var szin=color;
document.getElementById("kozepso").style.background=szin;
}

</script>

csak googlen sokhelyen "background-color" -t irtak...

some men just wanna watch the world burn...

(#1604) Zoli1222 válasza EmberXY (#1601) üzenetére


Zoli1222
őstag

Köszi, de végül window.prompt-tal oldottam meg. :R

(#1605) EmberXY válasza Zoli1222 (#1604) üzenetére


EmberXY
addikt

Nincs mit, amit írtam, az végülis akkor lenne célszerű, ha konkrét űrlapon dolgozunk (--a kódban, amit írtál, a js hoz létre egy formot, tehát nincs alapból megadva az űrlap--), ott aztán akármit be lehet kérni, rengeteg módon meg lehet hívni az előre megírt js függvényeket, én általában mindig ilyen űrlapokkal szoktam dolgozni, ha adatokat kell bekérni. :R

Up the Irons!

(#1606) shev7 válasza j0k3r! (#1603) üzenetére


shev7
veterán

"csak googlen sokhelyen "background-color" -t irtak..."

hat nem mindegy, hogy js vagy css. Kicsit zavaro lehet de mas a propertyk neve.

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#1607) Sk8erPeter válasza j0k3r! (#1603) üzenetére


Sk8erPeter
nagyúr

Azért írnak background-color-t, mert az konkrétan csak a színt módosítja CSS-ben, és az is helyes, csak backgroundColor formában elérhető (mindjárt bővebben). A sima background-dal több dolgot is lehet módosítani, lásd ezt: [link]. Pl. megadhatsz egy színt, és még mellé egy url-t, ahol az a kép található, amit a szín mellett még be akarsz pakolni háttérbe, ahogy a w3schools példája is írja:
body {background: #00ff00 url('smiley.gif') no-repeat fixed center;}

A sima background-color is helyes, de remélem tudod, hogy JavaScriptben nem mindegy, hogy nagy- vagy kisbetűt írsz, és a JavaScript-es szintaktikának megfelelően adod-e meg, a background-color tulajdonságot így tudod megadni ([link] - JavaScript syntax):
object.style.backgroundColor="#00FF00"
Tehát nem kötőjellel, hanem egybe, és nagy C-vel adod meg (backgroundColor).
Ezekre figyelni kell, különben nem fog működni a kódod. Mindig nézd meg a helyes szintaktikát - például a w3schools-on (itt elég áttekinthető és könnyen megtalálható) -, mert a JavaScriptes stílusmódosítások szintaktikája sokszor nem egyezik meg a CSS szintaktikájával (de hasonló).

[ Szerkesztve ]

Sk8erPeter

(#1608) j0k3r! válasza Sk8erPeter (#1607) üzenetére


j0k3r!
senior tag

koszonom szepen mindkettotoknek. majd odafigyelek a kis/nagybetukre, azthiszem valami komolyabb fejlesztokornyezetet be is szerzek ubuntura.
tudom, hogy nem ide tartozik.de : erre otlet?

some men just wanna watch the world burn...

(#1609) Zoli1222


Zoli1222
őstag

var a = window.prompt("Add meg \"a\" értékét :", "<A szám:(ne feledd az \"a\" nem lehet nulla)>");
if (a==0){
alert("Mondom nem lehet NULLA!");
onClick=history.go();
}
var b = window.prompt("Add meg \"b\" értékét :", "<A szám>");
var c = window.prompt("Add meg \"c\" értékét :", "<A szám>");

Mi hiányzik még belőle, h hiba nélkül fusson le?
vagy a onClick=history.go(); helyett mit kellene beírni?
Mert ha 0-t írok be akkor figyelmeztet, h nem lehet 0 és újra is kezdi, de megmarad az első lekérdezés is.

(#1610) Sk8erPeter válasza j0k3r! (#1608) üzenetére


Sk8erPeter
nagyúr

onclick="this.style.backgroundColor='#FF0000';" //#FF0000 helyére a saját kívánt színed

Sk8erPeter

(#1611) Sk8erPeter válasza Zoli1222 (#1609) üzenetére


Sk8erPeter
nagyúr

Minek kell neked a history.go() ? :F
onClick=history.go();
Ezzel mit akartál? :Y

Az ilyenek helyett:
"Add meg \"b\" értékét :"
írhatod így is:
'Add meg "b" értékét :'
És máris áttekinthetőbb. (A változtatás itt a sima aposztrófban rejlik, így már használhatod az idézőjelet.)

[ Szerkesztve ]

Sk8erPeter

(#1612) Zoli1222 válasza Sk8erPeter (#1611) üzenetére


Zoli1222
őstag

1. Csak azt, h újra kezdje az a érték megkérdezésével.

2. Innentől így teszek majd az aposztrófokkal. :R

Az az igazság, h js-t most kezdem tanulni, és sok utasítást nem ismerek, és most még csak a neten tudok utána nézni dolgoknak.

Küldök egy pü-t.

(#1613) shev7 válasza Zoli1222 (#1612) üzenetére


shev7
veterán

"Csak azt, h újra kezdje az a érték megkérdezésével."

akkor tedd be egy ciklusba. Addig hivod a promptot, amig "a" nulla....

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#1614) Zoli1222 válasza shev7 (#1613) üzenetére


Zoli1222
őstag

:W Komolyan!
Miért nem jut ilyen egyszerű megoldás az eszembe?
Egy sima while és meg van oldva a dolog.
Köszi. :R

(#1615) j0k3r! válasza Sk8erPeter (#1610) üzenetére


j0k3r!
senior tag

sajnos nem megy, a parameterezesnel lehet a gond, ahogy leviszem az egeret a menupontrol egybol visszavaltozik az eredeti szinre (fekete alapon szines betu) :/

ime a kodreszlet:

<head>
<title>Proba menu</title>
<link type="text/css" rel="stylesheet" href="style.css"/>
<script language="javascript" type="text/javascript">
function szincsere(color,melyik)
{
var szin=color;
var nev=melyik;
document.getElementById("kozepso").style.background=szin;
//document.write("melyik = "+nev+"<br>");
document.getElementsByClassName("nev").style.backgroundColor=szin;
document.getElementsByClassName("nev").style.Color='#000000';
}

</script>
</head>
<body bgcolor="Black">
<p align="center"><img src="lol2.png"></p>
<ul id="menu">
<li class="piros"><a onclick="szincsere('#FF0000','piros');">PIROS</a></li>
<li class="narancs"><a onclick="szincsere('#FFA500','narancs');">NARANCS</a></li>
<li class="citrom"><a onclick="szincsere('#FFFF00','citrom');">CITROM</a></li>
<li class="zold"><a onclick="szincsere('#00FF00','zold');">ZOLD</a></li>
<li class="kek"><a onclick="szincsere('#4876FF','kek');">KEK</a></li>
<li class="lila"><a onclick="szincsere('#9400D3','lila');">LILA</a></li>

</ul>

elso probalkozasom par het olvasgatas utan, szoval nem nevetni : )
ha esetleg valamit mashogy csinalnatok, a kritikat szivesen fogadom.

adok kepet is, hatha ez segit:

[ Szerkesztve ]

some men just wanna watch the world burn...

(#1616) Sk8erPeter válasza j0k3r! (#1615) üzenetére


Sk8erPeter
nagyúr

Egy kissé túlbonyolítottad. :)

A függvény:

<script language="javascript" type="text/javascript">
<!--
function szincsere(color,melyik){
melyik.style.backgroundColor=color;
}
// -->
</script>

A lista:

<ul id="menu">
<li class="piros"><a onclick="szincsere('#FF0000',this);">PIROS</a></li>
<li class="narancs"><a onclick="szincsere('#FFA500',this);">NARANCS</a></li>
<li class="citrom"><a onclick="szincsere('#FFFF00',this);">CITROM</a></li>
<li class="zold"><a onclick="szincsere('#00FF00',this);">ZOLD</a></li>
<li class="kek"><a onclick="szincsere('#4876FF',this);">KEK</a></li>
<li class="lila"><a onclick="szincsere('#9400D3',this);">LILA</a></li>
</ul>

Működik. :K

[ Szerkesztve ]

Sk8erPeter

(#1617) j0k3r! válasza Sk8erPeter (#1616) üzenetére


j0k3r!
senior tag

koszonom szepen! kicsit meg alakitottam rajta, de mukodik!!!

<script language="javascript" type="text/javascript">
function szincsere(hattersz, betusz, melyik)
{
document.getElementById("kozepso").style.background=hattersz;
document.getElementById("kozepso").style.color=betusz;
melyik.style.backgroundColor=hattersz;
melyik.style.color=betusz;
}

</script>
</head>
<body>
<p align="center"><img src="lol2.png"></p>
<ul>
<li id="piros"><a onclick="szincsere('#FF0000' ,'#000000', this);">PIROS</a></li>
<li id="narancs"><a onclick="szincsere('#FFA500' ,'#000000', this);">NARANCS</a></li>
<li id="citrom"><a onclick="szincsere('#FFFF00' ,'#000000', this);">CITROM</a></li>
<li id="zold"><a onclick="szincsere('#00FF00' ,'#000000', this);">ZOLD</a></li>
<li id="kek"><a onclick="szincsere('#4876FF', '#000000', this);">KEK</a></li>
<li id="lila"><a onclick="szincsere('#9400D3', '#000000', this);">LILA</a></li>

</ul>

most mar csak 1 gondom van, ha mind a 6 menupontot vegignyomom, akkor mind a 6 "vilagit", szoval kellene valami elagazast irnom, hogy egyszerre csak 1 legyen aktiv.
egy kis segitseget tudnal adni az elindulashoz? (ne kesz megoldast, mert gondolkodni szeretnek rajta)

elore is koszonom.

[ Szerkesztve ]

some men just wanna watch the world burn...

(#1618) j0k3r! válasza Sk8erPeter (#1616) üzenetére


j0k3r!
senior tag

ha jol sejtem, akkor a this egy mutato, mint c-ben?!
ugy szeretnem megcsinalni, hogy az onclick esemenyt kibovitenem meg par sorral, ami az eppen kattintas alatt levo menun kivul az osszes menut "default" helyzetbe rakja, es igy mindig csak 1 lesz "szines/aktiv".

namost az volna a kerdesem, hogy this nelkul, hogy tudnek hivatkozni az egyes menuelemekre?
ugy mint itt a "kozepso" div-re:
document.getElementById("kozepso").style.background=szin;

a segitseged elore is koszonom.

some men just wanna watch the world burn...

(#1619) Sk8erPeter válasza j0k3r! (#1618) üzenetére


Sk8erPeter
nagyúr

A this-ről többek közt itt olvashatsz: [link].

Ha nem szeretnél konkrét kódot, csak ötletet, akkor csak annyit mondok, hogy tömb, for ciklus, childNodes. :) És így még szebb is lesz a kódod.

Sk8erPeter

(#1620) FixY67


FixY67
senior tag

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?

...

(#1621) Sk8erPeter válasza FixY67 (#1620) üzenetére


Sk8erPeter
nagyúr

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.

Sk8erPeter

(#1622) FixY67 válasza Sk8erPeter (#1621) üzenetére


FixY67
senior tag

Én is így gondoltam (egyébként a FF nem 3.0.6, hanem 3.6), épp ezért érdeklődtem.
Szóval valami nem kerek a noscript körül... :(
Bíztam benne, hogy csak én vagyok lemaradva ennyire a webes technológiákat illetően és ez már nem JS, hanem valami HTML 10.2 vagy hasonló. :)

...

(#1623) FixY67 válasza Sk8erPeter (#1621) üzenetére


FixY67
senior tag

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

...

(#1624) Yooha


Yooha
aktív tag

Sziasztok!

Java telepítés közben az alábbi hiba:
Wrapper.createfile Error 3: Nem találja a megadott útvonalat (én nem adtam meg semmit)
Ilyenkor mi van?

Én a kardomat a kezemben hordom. Te a tiédet a szívedben és az elmédben. Ahogy én látom, ez 2:1 fegyverelőny a részedre.

(#1625) EmberXY válasza Yooha (#1624) üzenetére


EmberXY
addikt

A google a barátod. :D

Első nekifutásra..: Search: Wrapper.createfile Error
Én ugyan nem tudom megoldani a problémát, de páran már találkoztak vele, hátha lehet találni valami hasznosat..
:R

[ Szerkesztve ]

Up the Irons!

(#1626) Sk8erPeter válasza FixY67 (#1623) üzenetére


Sk8erPeter
nagyúr

É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

(#1627) FixY67 válasza Sk8erPeter (#1626) üzenetére


FixY67
senior tag

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.

[ Szerkesztve ]

...

(#1628) Sk8erPeter válasza FixY67 (#1627) üzenetére


Sk8erPeter
nagyúr

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

Sk8erPeter

(#1629) EmberXY válasza FixY67 (#1627) üzenetére


EmberXY
addikt

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.....

[ Szerkesztve ]

Up the Irons!

(#1630) FixY67 válasza EmberXY (#1629) üzenetére


FixY67
senior tag

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.

...

(#1631) EmberXY válasza FixY67 (#1630) üzenetére


EmberXY
addikt

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

Up the Irons!

(#1632) FixY67 válasza EmberXY (#1631) üzenetére


FixY67
senior tag

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.

...

(#1633) EmberXY válasza FixY67 (#1632) üzenetére


EmberXY
addikt

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

[ Szerkesztve ]

Up the Irons!

(#1634) Sk8erPeter válasza FixY67 (#1632) üzenetére


Sk8erPeter
nagyúr

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...

Sk8erPeter

(#1635) FixY67 válasza Sk8erPeter (#1634) üzenetére


FixY67
senior tag

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

[ Szerkesztve ]

...

(#1636) Sk8erPeter válasza FixY67 (#1635) üzenetére


Sk8erPeter
nagyúr

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

Sk8erPeter

(#1637) Sk8erPeter válasza FixY67 (#1635) üzenetére


Sk8erPeter
nagyúr

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

(#1638) FixY67 válasza Sk8erPeter (#1637) üzenetére


FixY67
senior tag

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? )

...

(#1639) Sk8erPeter válasza FixY67 (#1638) üzenetére


Sk8erPeter
nagyúr

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

(#1640) j0k3r! válasza Sk8erPeter (#1619) üzenetére


j0k3r!
senior tag

hello megint! kicsit elakadtam megint. tudnal valami hasznos leirast adni arrol, hogy js-ben a html elemeire hogy lehet hivatkozni (this nelkul)?
vagy mindig adjak id-ket, aztan document.getElementById("akarmi") ?
ha for ciklus, meg tomb, akkor valoszinuleg valami index alapjan kellene vegigmenni a ciklusnak az adott elemeken, bar lehet rosszul gondolom.
a segitseged elore is koszonom.

some men just wanna watch the world burn...

(#1641) shev7 válasza j0k3r! (#1640) üzenetére


shev7
veterán

igen, a legegyszerubb, ha azokra az elemekre amikre hivatkozni akarsz, van id-d.

Vagy lehet az un. DOM tree-ben lepkedni: ehhez a nextSiebling, previousSiebling, parentNode, childNodes property-ket lehet hasznalni, de ez elobb-utobb igen csunya, olvashatatlan kodot eredmenyez...

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#1642) Sk8erPeter válasza j0k3r! (#1640) üzenetére


Sk8erPeter
nagyúr

Igen, lehet document.getElementById alapján is, egy for ciklussal, és akkor mondjuk egy tömbbe bepakolhatod az id-ket:
var tomb=new Array("ez", "az", "amaz");
for(var i=0;i<tomb.length;i++)
document.getElementById(tomb[i]).style.backgroundColor="red";

Meg persze childNodes-zal is meg lehet oldani, de az valóban átláthatatlan lehet egy idő után, ahogy shev7 is írta.

Sk8erPeter

(#1643) j0k3r!


j0k3r!
senior tag

ma delutan neki is esek. koszonom mindkettotok segitseget!

some men just wanna watch the world burn...

(#1644) j0k3r!


j0k3r!
senior tag

valaki megmondana mi a hiba? en hiaba bamulom nem talalok semmit...
script:

<script language="javascript" type="text/javascript">
function szincsere(hattersz, betusz, melyik)
{
document.getElementById("kozepso").style.background=hattersz;
document.getElementById("kozepso").style.color=betusz;
var nevek=new Array("piros", "narancs", "citrom", "zold", "kek", "lila");
var szinek=new Array("#FF0000", "#FFA500", "#FFFF00", "#00FF00", "#4876FF", "#9400D3");
for(var i=0;i<nevek.length;i++)
{
document.getElementById(nevek[i]).style.backgroundColor=betusz;
document.getElementById(nevek[i]).style.color=szinek[i];
}
melyik.style.backgroundColor=hattersz;
melyik.style.color=betusz;

}

</script>

lista:

<ul>
<li id="piros"><a onclick="szincsere('#FF0000' ,'#000000', this);">PIROS</a></li>
<li id="narancs"><a onclick="szincsere('#FFA500' ,'#000000', this);">NARANCS</a></li>
<li id="citrom"><a onclick="szincsere('#FFFF00' ,'#000000', this);">CITROM</a></li>
<li id="zold"><a onclick="szincsere('#00FF00' ,'#000000', this);">ZOLD</a></li>
<li id="kek"><a onclick="szincsere('#4876FF', '#000000', this);">KEK</a></li>
<li id="lila"><a onclick="szincsere('#9400D3', '#000000', this);">LILA</a></li>
</ul>

probaltam if - else -el is, ami jobban tetszett volna, ha mukodik:

<script language="javascript" type="text/javascript">
function szincsere(hattersz, betusz, melyik)
{
document.getElementById("kozepso").style.background=hattersz;
document.getElementById("kozepso").style.color=betusz;
var nevek=new Array("piros", "narancs", "citrom", "zold", "kek", "lila");
var szinek=new Array("#FF0000", "#FFA500", "#FFFF00", "#00FF00", "#4876FF", "#9400D3");
for(var i=0;i<nevek.length;i++)
{
if(document.getElementById(nevek[i])==melyik)
{
document.getElementById(nevek[i]).style.backgroundColor=hattersz;
document.getElementById(nevek[i]).style.color=betusz;
}
else
{
document.getElementById(nevek[i]).style.backgroundColor=betusz;
document.getElementById(nevek[i]).style.color=szinek[i];
}
}

}

</script>

some men just wanna watch the world burn...

(#1645) j0k3r! válasza j0k3r! (#1644) üzenetére


j0k3r!
senior tag

szerintem ebben a sorban van a gond:
if(document.getElementById(nevek[i])==melyik)
es szerintem valami attributum hianyzik a melyik utan, de lehet hogy megint rossz helyen kapizsgalok.

some men just wanna watch the world burn...

(#1646) Sk8erPeter válasza j0k3r! (#1644) üzenetére


Sk8erPeter
nagyúr

Mielőtt elkezdeném kegyetlenül bámulni a kódot, hogy kibogarásszam, mi a hiba, inkább Te írhatnád le, mi a hibajelenség, mi nem működik, mit nem csinál, ne nekünk kelljen már kitalálni. :) Egyáltalán nem megy, nem vált színt? Amúgy van valami különleges célod azzal, hogy paraméterként is átadod a háttérszínt, meg még külön tömbben is tárolod? Mert ha a "kozepso" elemnek szeretnéd átadni ugyanazt a színt, mint amit kap az aktuális klikkelt elem, akkor tök felesleges paraméterként is átadni (vagy épp a tömb felesleges, ez a Te döntésed).

Sk8erPeter

(#1647) Sk8erPeter válasza j0k3r! (#1645) üzenetére


Sk8erPeter
nagyúr

Igen, az id hiányzik utána.
if(document.getElementById(nevek[i]).id==melyik.id)
//...

Sk8erPeter

(#1648) j0k3r! válasza Sk8erPeter (#1646) üzenetére


j0k3r!
senior tag

az onclick esemeny utan a kozepso div-em hattere megvaltozik. ez jo, de ahogy elmozditom az egermutatot a menupont felol, el is tunik az "inverz" kijeloles, amit a css-ben hoverrel csinaltam a menupontokra.
es igen johogy mondod, szerintem 1 parameter is eleg lesz a 3 helyett. (this marad)
mar javitottam is.

some men just wanna watch the world burn...

(#1649) Sk8erPeter válasza j0k3r! (#1648) üzenetére


Sk8erPeter
nagyúr

Tehát van CSS-sel hover tulajdonság is beállítva, hogy ha föléviszed az egeret, megváltozzon a színe a beállítottra, de azt szeretnéd, hogy menüpontra kattintáskor változzon meg a "kozepso" elem színe olyanra, amilyen a kattintott elemnek CSS-sel a hover-re van beállítva, és a kattintott elemnél meg is maradjon ugyanaz a háttérszín, mint amit CSS-sel hover-rel beállítottál? Csak hogy egész pontosan értsem, mit szeretnél. :)

Sk8erPeter

(#1650) j0k3r! válasza Sk8erPeter (#1649) üzenetére


j0k3r!
senior tag

pontosan fonok :K
a kozepso egyebkent egy div. (amivel eddig nem volt gond)
inkabb a menupontoknal van gond, hogy vagy egy se "szinezodik be" vagy pedig a 6 menupontot vegigkattintva mind a 6 "beszinezodik".
beszinezodik==css hover-es kinezet

szerk: esetleg, ha az segitene feltolthetem valahova a css+html filet

[ Szerkesztve ]

some men just wanna watch the world burn...

Copyright © 2000-2024 PROHARDVER Informatikai Kft.