File tree Expand file tree Collapse file tree 6 files changed +158
-0
lines changed
Expand file tree Collapse file tree 6 files changed +158
-0
lines changed Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+ < head >
4+ < meta charset ="UTF-8 " />
5+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6+ < meta http-equiv ="X-UA-Compatible " content ="ie=edge " />
7+ < title > Quick Quiz</ title >
8+ < link rel ="stylesheet " href ="app.css " />
9+ </ head >
10+
11+ < body >
12+ < div class ="container ">
13+ < div id ="end " class ="flex-center flex-column ">
14+ < h1 class ="text-center "> Great Job!</ h1 >
15+ < h2 id ="finalScore "> 100</ h2 >
16+ < a class ="btn " href ="/ "> Go Home</ a >
17+ < form >
18+ < label for ="username "> Username</ label >
19+ < input type ="text " name ="username " id ="username " />
20+ < button
21+ class ="btn "
22+ type ="submit "
23+ id ="saveScoreBtn "
24+ onclick ="saveHighScore(event) "
25+ disabled
26+ >
27+ Save
28+ </ button >
29+ </ form >
30+ </ div >
31+ </ div >
32+ < script src ="end.js "> </ script >
33+ </ body >
34+ </ html >
Original file line number Diff line number Diff line change 1+ const finalScore = document . getElementById ( "finalScore" ) ;
2+ const usernameInput = document . getElementById ( "username" ) ;
3+ const saveScoreBtn = document . getElementById ( "saveScoreBtn" ) ;
4+ const highScores = JSON . parse ( localStorage . getItem ( "highScores" ) ) || [ ] ;
5+ const mostRecentScore = localStorage . getItem ( "mostRecentScore" ) ;
6+ //load mostRecentScore from localStorage
7+ //TODO: navigate home if no previous score
8+ finalScore . innerText = localStorage . getItem ( "mostRecentScore" ) ;
9+
10+ saveHighScore = e => {
11+ console . log ( "save high score" ) ;
12+ e . preventDefault ( ) ;
13+ //add the score, sort the array, and splice off starting at position 5
14+ highScores . push ( { mostRecentScore, username : usernameInput . value } ) ;
15+ highScores . sort ( ( a , b ) => b . score - a . score ) ;
16+ highScores . splice ( 5 ) ;
17+ //Save to local storage for next time
18+ localStorage . setItem ( "highScores" , JSON . stringify ( highScores ) ) ;
19+
20+ //Go home
21+ window . location . assign ( "/" ) ;
22+ } ;
23+
24+ usernameInput . addEventListener ( "keyup" , ( ) => {
25+ saveScoreBtn . disabled = ! usernameInput . value ;
26+ } ) ;
Original file line number Diff line number Diff line change 1+ /* GAME */
2+ .choice-container {
3+ display : flex;
4+ margin-bottom : 5px ;
5+ width : 100% !important ;
6+ }
7+
8+ .choice-prefix {
9+ padding : 5px 0 ;
10+ width : 50px ;
11+ text-align : center;
12+ border-right : 1px solid black;
13+ }
14+
15+ .choice {
16+ padding : 5px 0 ;
17+ flex-grow : 1 ;
18+ }
19+
20+ .correct {
21+ animation : correct 1s ;
22+ }
23+
24+ .incorrect {
25+ animation : incorrect 750ms ;
26+ }
27+
28+ # hud {
29+ display : flex;
30+ justify-content : space-between;
31+ }
32+
33+ @keyframes correct {
34+ 0% {
35+ border-color : green;
36+ background-color : green;
37+ }
38+ 25% {
39+ border-color : green;
40+ background-color : green;
41+ }
42+ 100% {
43+ border-color : black;
44+ background-color : white;
45+ }
46+ }
47+
48+ @keyframes incorrect {
49+ 0% {
50+ border-color : red;
51+ background-color : red;
52+ }
53+ 25% {
54+ border-color : red;
55+ background-color : red;
56+ }
57+ 100% {
58+ border-color : black;
59+ background-color : white;
60+ }
61+ }
Original file line number Diff line number Diff line change 1+ /* High Scores */
2+
3+ # highScoresList {
4+ padding-left : 0 ;
5+ list-style : none;
6+ }
Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+ < head >
4+ < meta charset ="UTF-8 " />
5+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6+ < meta http-equiv ="X-UA-Compatible " content ="ie=edge " />
7+ < title > Quick Quiz</ title >
8+ < link rel ="stylesheet " href ="app.css " />
9+ < link rel ="stylesheet " href ="highscores.css " />
10+ </ head >
11+
12+ < body >
13+ < div class ="container ">
14+ < div id ="highScores " class ="flex-center flex-column ">
15+ < h1 id ="finalScore "> High Scores</ h1 >
16+ < ul id ="highScoresList "> </ ul >
17+ < a class ="btn " href ="/ "> Go Home</ a >
18+ </ div >
19+ </ div >
20+ < script src ="highScores.js "> </ script >
21+ </ body >
22+ </ html >
Original file line number Diff line number Diff line change 1+ const highScoresList = document . getElementById ( "highScoresList" ) ;
2+ const highScores = JSON . parse ( localStorage . getItem ( "highScores" ) ) || [ ] ;
3+ console . log ( highScores ) ;
4+ highScoresList . innerHTML = highScores
5+ . map (
6+ highScore =>
7+ `<li class="high-score">${ highScore . username } - ${ highScore . score } </li>`
8+ )
9+ . join ( "" ) ;
You can’t perform that action at this time.
0 commit comments