Stundas uzdevums: Piesaistīt izstrādātās JavaScript funkcijas reālām lietotāja darbībām (peles klikšķiem un klaviatūras taustiņiem), padarot spēles saskarni pilnībā interaktīvu.
2.6.1. Ievēro programmas pieraksta labo praksi; 1.3.3. Īsteno risinājumu atbilstoši plānam.70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Lai pārlūkprogramma zinātu, kad izsaukt tavu funkciju, mēs izmantojam notikumu klausītājus (Event Listeners). Tas ir kā neredzams sargs, kas stāv pie HTML elementa un gaida, kad notiks konkrēta darbība (notikums).
click (peles klikšķis), keydown (taustiņa nospiešana), mouseenter (peles novietošana virs elementa).elements.addEventListener('notikums', funkcijasNosaukums);e vai event.onclick="" rakstīšanas tieši HTML failā. HTML ir struktūrai, JS ir uzvedībai!
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 4.2 Notikumu klausītāji (Event Listeners) un interakcija; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
<section class="iesildisanas-demo">
<h2>4.2 Notikumu klausītāji (Event Listeners) un interakcija</h2>
<p id="rezultats">Sākuma teksts</p>
<button id="poga">Pārbaudīt</button>
</section>
.iesildisanas-demo {
padding: 16px;
border: 2px solid #FFB142;
border-radius: 6px;
}
.iesildisanas-demo button {
cursor: pointer;
}
const rezultats = document.querySelector("#rezultats");
const poga = document.querySelector("#poga");
poga.addEventListener("click", () => {
rezultats.textContent = "Kods darbojas: 4.2 Notikumu klausītāji (Event Listeners) un interakcija";
});
index.html, style.css un script.js.Pievieno šīs stundas paņēmienu kā nelielu, lietotājam redzamu projekta daļu.
index.html un pievieno spēles laukumu: <div id="laukums" style="position:relative;width:400px;height:300px;border:2px solid white;overflow:hidden;"></div>.<div id="speletajs" style="position:absolute;left:180px;top:250px;width:40px;height:40px;background:blue;"></div>.script.js un pievieno: let spX = 180; un funkciju atjaunotSpeletaju(), kas piešķir style.left = spX + "px".document.addEventListener("keydown", function(e) { if (e.key==="ArrowLeft") spX -= 10; if (e.key==="ArrowRight") spX += 10; atjaunotSpeletaju(); });spX < 0, piestādi pie 0; ja spX > 360, piestādi pie 360.id="speletajs" sakrīt ar getElementById.git commit -m "Add keyboard movement with event listener".Pārbaudi, vai algoritms darbojas paredzami vairākās situācijās.
keydown eventos e.key vērtība ir "ArrowLeft" vai "ArrowRight".let spY = 250; mainīgo.addEventListener ir labāks par onclick="" tieši HTML failā.Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.
document.getElementById("laukums").addEventListener("click", saut);saut(), kas rāda "Šāvis!" elementā <p id="statuss">.saut() tā, lai tā pievieno 5 punktus un atjauno punktu rādīšanu.e.preventDefault() funkcijā.git commit -m "Add mouse click shoot event".poga.addEventListener("click", savakt()); (ar iekavām beigās), funkcija izpildīsies UZREIZ lapas ielādes brīdī, nevis gaidīs klikšķi. Pareizi ir savakt (bez iekavām)."onClick" JS failā ir kļūda. HTML vidē tas bija "onclick", bet addEventListener prasa tikai "click".// 1. Atrodam pogu HTML dokumentā
let uzbrukumaPoga = document.getElementById("uzbrukt-btn");
// 2. Definējam darbību
function veiktUzbrukumu() {
console.log("Bam! Ienaidnieks saņem bojājumus.");
}
// 3. Piesaistām "klausītāju" - gaidām KLIKŠĶI, tad izsaucam veiktUzbrukumu (bez iekavām!)
uzbrukumaPoga.addEventListener("click", veiktUzbrukumu);
// ----------------------------------------------------
// Tastatūras uztveršana visā lapā (document)
document.addEventListener("keydown", function(e) {
// Pārbaudām, kurš taustiņš tika nospiests
if (e.key === " ") { // Atstarpes (Space) taustiņš
console.log("Spēle iepauzēta!");
}
});