Leckék menü
JavaScript - advanced - Lecke száma 4
Feltételek és elágazások
Miről szól ez a lecke?
Ebben a leckében a feltételek elágazáson (if struktúra) belüli használatáról tanulunk. Ahhoz, hogy az if struktúra használjunk új, logikai műveleteket tanulunk meg, egyenlőséget ellenőrzünk, összehasonlítunk két értéket annak érdekében, hogy eldöntsük, hogyan folytatjuk a programunkat. Ebben a leckében kísérletezünk először a CSS fájlokból a lehető legegyszerűbb módon értékeket kikérni.

Új metódusok ebben a leckében:
a_fo_szoveg.search(a szövegrész, amit keresünk) – ez a metódus a string (szöveg) objektumhoz tartozik. Ezt a metódust arra használjuk, hogy egy szöveget megtaláljunk egy másik szövegben. Az eredmény -1, ha nem találja meg, különben egy szám, amely azt adja meg, hogy a keresett szöveg hol található az eredeti szövegen belül.
getComputedStyle(elem) – a window objektum egy metódusa, amely arra alkalmas, hogy egy HTML elemre alkalmazott tényleges CSS formázást lekérdezzük. Stílust az elem a HTML címkén belülről, a dokumentum fejlécéből és a CSS fájlokból akár több osztályból és egyéb beállításból kaphatja, így hát a válasz eldöntése nem olyan egyszerű.
Egy sor beállítást kapunk vissza, és a getPropertyValue metódust kell használni, hogy a kívánt eredményt megtaláljuk. Kétparaméteres változat is létezik.
getPropertyValue(a tulajdonság neve) – ezt a metódust a getComputedStyle metódus párjaként lehet használni arra, hogy egy konkrét tulajdonság értékét visszakapjuk.
parseInt – egy globális metódus, amely alkalmas szöveget számmá alakítani – az átalakítást a szöveg elején kezdi. Ha az elején nincs számjegy, az eredmény nem egy érvényes szám.
confirm(‘az üzenet szövege’) – a window objektum ezen metódusa, arra alkalmas, hogy üzenetet jelenítsen meg, akár az alert metódus, de ez esetben van visszajelzésre lehetőség. Ha a felhasználó az Ok-ra kattint, igaz eredményt térít vissza és hamisat, ha a Cancel-t választja.

Új események ebben a leckében:
onmouseenter – ez az esemény akkor váltódik ki, ha a kurzor egy objektum fölé ér, amelyet figyelünk erre az eseményre.
onmouseleave – ez az esemény akkor váltódik ki, ha a kurzor elhagyja a megfigyelt elemet.

Példa egy CSS tulajdonság értékének lekérésére:



Az eddigiekben módosítottunk már HTML elemek stílusát, de a beállított CSS tulajdonságok értékeit még nem kértük soha vissza. Egy HTML tulajdonság értékének lekérdezéséhez, csupán a tulajdonság nevét kell tudnunk. Például a this.src-vel az éppen aktuális kép forrását érjük el.

Ahhoz, hogy egy CSS értéket megtaláljunk a getComputedStyle és a getPropertyValue metódusok kombinációit használjuk. A fenti példában a change függvény megtalálja annak az elemnek a színét, amelyre kattintottunk, és a másik elemre alkalmazzuk háttérszínként.

A getComputedStyle(x) metódus az x objektum minden stílusbeállítását összeszedi, és a getPropertyValue metódus a szövegszínt (color) kéri ki, amely paraméterként van megadva.

Mi a feltétel?
Egy kifejezés változókból és műveletekből épül fel. A feltétel egy kifejezés, amelynek az eredménye egy logikai érték, azaz igaz vagy hamis.
Műveletek, amelyek logikai eredménnyel járnak: <, <=, >, >=, ==, !=.

Példa feltételekre:

xx==10 – ez a feltétel igaz, ha az x változó értéke 10 és hamis minden más értékre.
x!=10 – ez a feltétel igaz minden értékre kivétel a 10, és hamis 10-re.

 

Több feltételt összefoghatunk && (és), || (vagy).

A && jelet használjuk, ha mindkét feltételnek igaznak kell lennie.
A || jelet használjuk, ha elég az is, hogy az egyik feltétel igaz.


Példa kombinált feltételekre:

(x>=10) && (x<=50) – ez a feltétel igaz, minden olyan x értékre a [10, 50] intervallumból és hamis minden értékre az intervallumon kívül.
(x==10) || (x==20) – ez a feltétel két lehetséges értékre, a 10 és 20 értékre igaz. Minden más értékre az eredmény hamis.


Mi az if struktúra?
Ha egy döntést kell hozzunk a programon belül, nem helyezhetünk el egy feltételt magában a kódban. Például egy if struktúrában helyezhetünk el egy feltételt. Egy if struktúra egy feltétel alapján, amely igaz vagy hamis lehet, két utasítássor közül választ.

Az if struktúra általános alakja:
if (feltétel) {
utasítások, amelyeket a feltétel igaz értékére hajtunk végre.
} else {
utasítások, amelyeket a feltétel hamis értékére hajtunk végre.
}
Az else rész kihagyható, ha nem szükséges.
A kapcsos zárójelek elhagyhatóak, ha csak egy utasítás szerepel bennük.

Példa az if struktúrára:



A fenti példában az x változó a kép méretét (szélességét) tárolja, a HTML címkében tárolt értéket veszi át.
Ha a kép mérete kisebb, mint 300 pixel, a kép 10 pixellel lesz nagyobb gombnyomásra. Egy if struktúrát használva határt szabhatunk a növekedésnek.
Nincs else rész – adhattunk volna egyéb tennivalókat, ha már nem nőhet tovább a kép.

Példa szövegek (karakterláncok) összehasonlítására:


A fenti példában két karakterláncot hasonlítunk össze, két bekezdés elem tartalmát. Az == művelet szövegekre is működik, nem csak számokra. Az eredményt egy figyelmeztető ablakban jelenik meg.


Ha a kép nevét szeretnénk elérni, problémákba ütközhetünk: az eredmény a teljes útvonalat adja vissza a kép nevével együtt. Az == operátor csak akkor működik, ha a teljes (abszolút) útvonalat beírjuk a kódba, de az útvonal változik, ha másoljuk a mappát, a kód máshol nem működne.

Megoldhatjuk a problémát az x változóra alkalmazott search metódussal. Az eredmény -1, ha a small.jpg nem szerepel az x változó értékében.

Feladatok
1. Módosítsa a toplangs.html fájl:


A A legnépszerűbb programozási nyelvek 2018 címben, állítsa be az összes listaelemet az események onmouseenter benne egy funkcióval, az úgynevezett módosítsa és a onmouseleave egy funkcióval, úgynevezett changeback. Mindkét funkciónak hivatkoznia kell az aktuális objektumra (ez).

A függvény módosítása növelnie kell a 10 képpontos betűméretet, és a changeback funkciónak vissza kell állítania a kezdeti értékét.

Tekintsd meg az eredményt
2. A forms.html módosítja az oldalon eltöltött másodperceket számláló függvényt. Változtassa meg, hogy egy perc múlva egy megerősítő üzenet kéri, hogy folytassa-e az időszámítást, és abbahagyja a számlálást, ha a Mégse lehetőséget választja. Csak egyszer kell megkérdeznie (amikor a másodperc értéke 60).
Tekintsd meg az eredményt
3. A index.html fájlban módosítsa azt a funkciót, amely elrejti a képeket a galériából. Módosítsa azt, hogy az összes kép elrejtése után ismét mutassa meg őket.
Tekintsd meg az eredményt
4. A index.html fájlban módosítsa a galériát, ha hozzáad egy gombot (néhány CSS stílussal), amelyet a Play / Pause galéria animációnak neveznek. amelyre kattintva hívja a toggleAnimation () nevű függvényt. Ez a függvény a galériában lévő képeket id azonosítja, és módosítja az animációs játékstílusukat „változatos” vagy „futó” változóként egy olyan változó segítségével, amely jelenleg az animációt futtatja vagy szünetelteti.
Tekintsd meg az eredményt
Kérdőív
1. Melyik feltétel igaz, ha az x változó értéke 8?
2. Ha a következő kód olyan képre utal, amelynek szélessége 450 pixel és a magassága 475 pixel, akkor mi lesz a kép utolsó mérete?

if (this.width this.style.width+=10;
this.style.height+=10;
}

3. Az alábbi kód használatával mi jelenik meg a figyelmeztető ablakban? br />

<div onclick="find(this)"> And it grew both day and night. Till it bore an apple bright. </div>
<script>
function find(x){
var t=x.innerHTML.search("both");
alert(t);
}
</script>

4. Mi a parseInt("40px * 150px") instrukció eredménye?
5. Mi a következő kód eredménye?

if (confirm("What do you say?")) this.innerHTML="I do not know.";
else this.innerHTML="I do not care.";

6. Mi történik, ha egy img tagből lehívjuk a következő kódot?
<img onclick="change(this)" src="small.jpg" width="350">
<script>

function change(){

var x=this.width;
if (x=300) alert(x);
else alert("NO");

}
</script>

Exclamation mark Ez az oldal sütiket használ. Ha folytatod böngészést, elfogadod azok használatát! Elfogadom