← Område 6 Uppgift · Interaktivitet med moduler Felsökning

Webbutveckling 1 · område 6 · uppgift

Projekt 5 – Moduler i din egen sajt

1. Uppdraget

Du ska bygga in minst två moduler ur modulbiblioteket i din egen sajt, anpassa dem så att de hör hemma där, och kunna förklara vad koden gör.

Det är inte en uppgift i att skriva JavaScript från grunden. Det är en uppgift i att läsa färdig kod, koppla in den rätt, ändra det som ska ändras – och låta bli det som inte ska ändras. Så ser det mesta av webbutveckling ut, och det är därför området är byggt så.

Sajten är samma som förut: den du byggde i Projekt 3 och som växt sedan område 2. Nu lägger den ett lager till.

2. Vilken sajt gäller det?

Samma regel som i Projekt 3, och samma två vägar.

Bygg vidare. Din sajt från Projekt 3, i samma repo. Det är vägen de flesta tar, och den som ger mest: modulerna hamnar i en sajt som redan är responsiv och tillgänglig, och du ser direkt om de passar.

Börja om. Har du ingen sajt att bygga vidare på – börja med områdets exempelsajt som förlaga, i ett nytt publikt repo. Du får mer arbete, men du hamnar inte efter. Säg till mig vilken väg du tar innan du börjar.

Båda vägarna bedöms med samma matris.

3. Modulerna

Sex finns i modulbiblioteket:

ModulFilPassar när
Hamburgermenymeny.jsmenyn har fler än fyra länkar
Mörkt läge med sparat valmorkt-lage.jssajten har ett mörkt schema sedan område 3
Filtrerbart gallerigalleri.jsdu har en samling i tydliga kategorier
Bildkarusellkarusell.jstre eller fler bilder hör ihop
Formulärvalideringvalidering.jsdu har ett formulär med flera fält
Quiz med rättningquiz.jsbesökaren kan testa sig på ditt ämne

Välj efter vad din sajt behöver, inte efter vilken som ser enklast ut. En hamburgermeny på en sajt med tre menylänkar är en modul som gör sajten sämre, och det syns i matrisen.

Vill du använda en modul som inte finns i biblioteket: fråga mig först. Kravet är att du kan förklara varje rad i den, och det blir svårt med kod från nätet.

4. Kraven

Kryssa av allt eftersom. Kryssen sparas i din webbläsare.

Ska-krav — nivå E

Bör-krav — mot nivå C

Utmaning — mot nivå A

5. Tekniska krav

Det här lämnas in

Repo-länken, i itslearning-uppgiften Projekt 5, senast fredag 5 februari 23:59. Repot ska vara publikt och sajten publicerad. Kontrollera adressen i ett privat fönster innan du lämnar in.

README.md är en del av inlämningen, inte ett tillägg. Det är där modulvalet, anpassningarna och – för A – jämförelsen står.

Så kan README-avsnittet se ut

Två till tre meningar per modul räcker. Det här är inte en uppsats – det är en anteckning till den som ska förstå dina val.

## Moduler

**Mörkt läge** (js/morkt-lage.js) – alla sidor.
Sajten hade redan ett mörkt färgschema från område 3, men besökaren kunde inte
välja själv. Nu går det, och valet finns kvar nästa besök. Jag bytte NYCKEL till
"cykelklubben-lage" så att den inte krockar med andra sajter.

**Filtrerbart galleri** (js/galleri.js) – turer.html.
Sidan har fjorton turer i tre kategorier, och man fick scrolla förbi allt för att
hitta en dagstur. Knapparna byggs ur data-grupp, så jag slipper uppdatera skriptet
när jag lägger till en tur.

Ändrat under ÄNDRA HÄR-zonen: i galleri.js stänger ett klick på den redan valda
knappen av filtret igen, så att man kommer tillbaka till alla turer utan att leta
efter "Alla". Två rader i filtrera().

Lägg avsnittet sist i din README.md, under det som redan står där.

6. Bedömningsmatris

KriteriumECA
InbyggnadTvå moduler fungerar på den publicerade sajten. Filerna ligger i js/, inkopplade med deferModulerna sitter där de hör hemma och stör inget annat på sidan. CSS:en är inlagd på rätt ställe i stilmallenSajten fungerar med JavaScript avstängt: inget tomt, inget oåtkomligt, ingen död knapp
ModulvalTvå moduler ur biblioteketValet är motiverat utifrån vad sajten innehåller, och motiveringen hållerModulerna löser ett problem sajten faktiskt hade, och du kan säga vilket
AnpassningMinst en rad ändrad i ÄNDRA HÄR-zonen per modulTexter och klassnamn hör hemma i din sajt. Minst en medveten ändring under zonen, beskriven i README.mdEn modul skriven från kravlistan, efter bibliotekets regler, med en jämförelse mot originalet
KodförståelseDu vet vilken fil som gör vadDu kan gå igenom en modul rad för rad och förklara varje delDu kan förklara varför modulen är byggd som den är – och peka på ett val du hade gjort annorlunda
KvalitetKonsolen är tom. HTML och CSS validerarInget beteende i HTML-attribut, inga stilar i JavaScript, inga kvarglömda console.logDin egen kod håller samma nivå som bibliotekets: kapsel, kontroller, attribut i stället för stilar
TillgänglighetModulerna går att använda med mus och på mobilHela sajten går att nå med enbart tangentbord, fokus syns, Escape stänger det som går att stängaModulerna förbättrar tillgängligheten i stället för att kosta den: aria-live där något ändras, fokus som flyttas dit det ska

E kräver alla ska-krav. C kräver E plus bör-kraven. A kräver C plus utmaningarna. Ett kriterium på hög nivå kompenserar inte ett som saknas.

7. Kom igång – de tre första sakerna

  1. Välj en modul och bygg in den i dag. Ta den lättaste som passar din sajt – mörkt läge eller formulärvalidering kräver minst ny HTML. Följ de fem stegen i JS-guiden avsnitt 8.
  2. Öppna konsolen och kontrollera att den är tom. F12 → Console. Är den inte tom, laga det innan du går vidare. Ett fel som ligger kvar blir tre fel på fredag.
  3. **Skriv README.md-rubriken Moduler med en gång**, med den modul du just byggde in och på vilken sida. Två rader nu är en färdig fil på deadlinedagen.

8. Så ligger tiden

Sju arbetspass. Det är mindre än område 4 hade, och modulerna är färdiga – tiden går till inbyggnad, anpassning och test.

PassDatumVad
52fre 15/1Genomgång: vad JavaScript gör. Uppgiften delas ut
53mån 18/1Genomgång: koppla in en modul. Konsolen
54tis 19/1Genomgång: anpassa en modul. Vad som är säkert att ändra
55fre 22/1Arbetspass. Första modulen inbyggd och fungerande
56mån 25/1Arbetspass. Andra modulen
57tis 26/1Arbetspass. Anpassningen: texter, klassnamn, inställningar
58fre 29/1Arbetspass. Tangentbordstest och mobil
59mån 1/2Arbetspass. A-spåret: skriv din egen modul
60tis 2/2Arbetspass. README.md, motiveringarna
61fre 5/2Sista finputs. Validering, två webbläsare. Deadline 23:59
62mån 8/2Prov 4 – läsa och anpassa kod

Första modulen ska fungera på lektion 55

Det är uppgiftens enda hållpunkt före deadline, och den finns av ett skäl: den som inte fått igång någon modul efter tre genomgångar och ett arbetspass har fastnat på något litet – en sökväg, ett klassnamn – och det är enklare att laga på fredagen den 22:a än veckan efter.

9. Checklista innan du lämnar in

  1. Båda modulerna fungerar på den publicerade adressen, inte bara lokalt
  2. Konsolen är tom på varje sida
  3. js/-filerna ligger i repot och har rätt namn, med små bokstäver
  4. CSS-avsnitten är med i stilmallen
  5. Du har ändrat något i ÄNDRA HÄR-zonen i varje modul
  6. Hela sajten går att nå med Tab, och fokus syns
  7. Testad i två webbläsare
  8. Öppnad i telefonen
  9. HTML och CSS validerar utan fel
  10. README.md har rubriken Moduler med vilka, var och varför
  11. Allt committat och synkat, adressen fungerar i ett privat fönster
  12. Repo-länken inlämnad i itslearning

10. Felsökning

11 rader

SymptomTrolig orsakÅtgärd
Ingenting händer, inget fel i konsolenFilen hämtades aldrigFliken Network, ladda om, leta efter din .js-fil. 404 betyder fel sökväg
Cannot read properties of nullSkriptet hittade inte elementetJämför klassnamnet i ÄNDRA HÄR-zonen med din HTML, tecken för tecken
Fungerar lokalt men inte på GitHub PagesStora och små bokstäver i filnamnetMeny.js och meny.js är olika filer på servern
Modulen fungerar på en sida men inte på en annanscript-taggen saknas därVarje sida behöver sin egen
Knappen syns aldrigSkriptet kom aldrig till raden som tar bort hiddenDet finns ett fel högre upp i konsolen
Modulen körs två gångerTvå script-taggar för samma filSök i HTML:en
Allt ser fel ut fast skriptet fungerarCSS-avsnittet saknasKopiera 13a–13f ur exempelsajtens stil.css
Mörkt läge fungerar men färgerna är felDin sajt saknar det mörka schemat från område 3Bygg prefers-color-scheme först, modulen sedan
Validatorn klagar på hiddenDen gör den inte – hidden är giltig HTMLLäs meddelandet igen, felet är något annat på raden
Jag vågar inte ändra i modulenDu har gitCommitta först. Går det sönder: git restore js/fil.js
Två moduler krockarDe gör de inte – varje modul är inkapsladLeta efter samma id använt två gånger i din HTML