Compare commits
32 Commits
Author | SHA1 | Date |
---|---|---|
Ryan Sobol | 42cd4def25 | 8 years ago |
Ryan Sobol | 43488eeaea | 8 years ago |
Ryan Sobol | 0336132c61 | 8 years ago |
Ryan Sobol | 4f58ad1fe5 | 8 years ago |
Ryan Sobol | eb209062e2 | 8 years ago |
Ryan Sobol | 71e29f11e0 | 8 years ago |
Ryan Sobol | 4764a09973 | 8 years ago |
Ryan Sobol | 309de303d0 | 8 years ago |
Ryan Sobol | 50ad6cc1c5 | 8 years ago |
Ryan Sobol | 2ac097d1ac | 8 years ago |
Ryan Sobol | ba764541e2 | 8 years ago |
Ryan Sobol | f6a2117f78 | 8 years ago |
Ryan Sobol | c6c2d8603f | 8 years ago |
Ryan Sobol | 030b3dad90 | 8 years ago |
Ryan Sobol | a66d9832f6 | 8 years ago |
Ryan Sobol | 725a770a94 | 8 years ago |
Ryan Sobol | 69ab2f12d0 | 8 years ago |
Ryan Sobol | 7098962ce3 | 8 years ago |
Ryan Sobol | 12ccebe93c | 8 years ago |
Ryan Sobol | a0c30c23ad | 8 years ago |
Ryan Sobol | e1e7877f94 | 8 years ago |
Ryan Sobol | 34474839ec | 8 years ago |
Ryan Sobol | 25674b5ce6 | 8 years ago |
Ryan Sobol | 36ebf6f0b4 | 8 years ago |
Ryan Sobol | 8cfc31392b | 8 years ago |
Ryan Sobol | 480f94030e | 8 years ago |
Ryan Sobol | a5bc7aa76c | 8 years ago |
Ryan Sobol | d489b8e893 | 8 years ago |
Ryan Sobol | eec0a7ed3d | 8 years ago |
Ian Smith | 549e267eea | 9 years ago |
Ian Smith | a68eb6a985 | 9 years ago |
Danny Fritz | a3fcfe763f | 9 years ago |
@ -1,33 +1,49 @@ |
|||||||
|
body { |
||||||
|
display: flex; |
||||||
|
} |
||||||
|
|
||||||
#controls { |
#controls { |
||||||
float: left; |
margin-top: 30px; |
||||||
padding-top: 30px; |
|
||||||
} |
} |
||||||
|
|
||||||
.button { |
.button { |
||||||
background-color: gray; |
background-color: gray; |
||||||
color: white; |
|
||||||
border-radius: 15px; |
border-radius: 15px; |
||||||
|
color: white; |
||||||
|
cursor: pointer; |
||||||
|
font-size: 2em; |
||||||
|
font-weight: bold; |
||||||
|
margin: 90px 40px; |
||||||
padding: 20px; |
padding: 20px; |
||||||
text-align: center; |
text-align: center; |
||||||
margin: 90px 40px; |
|
||||||
cursor: pointer; |
|
||||||
} |
} |
||||||
|
|
||||||
#traffic-light { |
#traffic-light { |
||||||
height: 550px; |
|
||||||
width: 200px; |
|
||||||
float: left; |
|
||||||
background-color: #ababab; |
background-color: #ababab; |
||||||
border-radius: 40px; |
border-radius: 40px; |
||||||
margin: 30px 0; |
margin: 30px 0; |
||||||
|
height: 550px; |
||||||
padding: 20px; |
padding: 20px; |
||||||
|
width: 200px; |
||||||
} |
} |
||||||
|
|
||||||
.bulb { |
.bulb { |
||||||
height: 150px; |
|
||||||
width: 150px; |
|
||||||
background-color: #111; |
background-color: #111; |
||||||
border-radius: 50%; |
border-radius: 50%; |
||||||
margin: 25px auto; |
margin: 25px auto; |
||||||
transition: background 500ms; |
height: 150px; |
||||||
|
transition: background 300ms; |
||||||
|
width: 150px; |
||||||
|
} |
||||||
|
|
||||||
|
.stop { |
||||||
|
background-color: red; |
||||||
|
} |
||||||
|
|
||||||
|
.slow { |
||||||
|
background-color: orange; |
||||||
|
} |
||||||
|
|
||||||
|
.go { |
||||||
|
background-color: green; |
||||||
} |
} |
@ -0,0 +1,80 @@ |
|||||||
|
(function() { |
||||||
|
'use strict'; |
||||||
|
|
||||||
|
const stopButton = document.querySelector('#stopButton'); |
||||||
|
const slowButton = document.querySelector('#slowButton'); |
||||||
|
const goButton = document.querySelector('#goButton'); |
||||||
|
|
||||||
|
const stopLight = document.querySelector('#stopLight'); |
||||||
|
const slowLight = document.querySelector('#slowLight'); |
||||||
|
const goLight = document.querySelector('#goLight'); |
||||||
|
|
||||||
|
// part 1
|
||||||
|
stopButton.addEventListener('click', () => { |
||||||
|
stopLight.classList.toggle('stop'); |
||||||
|
|
||||||
|
// or...
|
||||||
|
// if (stopLight.classList.contains('stop')) {
|
||||||
|
// stopLight.classList.remove('stop');
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// stopLight.classList.add('stop');
|
||||||
|
// }
|
||||||
|
}); |
||||||
|
|
||||||
|
slowButton.addEventListener('click', () => { |
||||||
|
slowLight.classList.toggle('slow'); |
||||||
|
}); |
||||||
|
|
||||||
|
goButton.addEventListener('click', () => { |
||||||
|
goLight.classList.toggle('go'); |
||||||
|
}); |
||||||
|
|
||||||
|
// part 2
|
||||||
|
const handleMouseEnter = (event) => { |
||||||
|
console.log(`Entered ${event.target.textContent} button`); |
||||||
|
}; |
||||||
|
|
||||||
|
const handleMouseLeave = (event) => { |
||||||
|
console.log(`Left ${event.target.textContent} button`); |
||||||
|
}; |
||||||
|
|
||||||
|
stopButton.addEventListener('mouseenter', handleMouseEnter); |
||||||
|
slowButton.addEventListener('mouseenter', handleMouseEnter); |
||||||
|
goButton.addEventListener('mouseenter', handleMouseEnter); |
||||||
|
|
||||||
|
stopButton.addEventListener('mouseleave', handleMouseLeave); |
||||||
|
slowButton.addEventListener('mouseleave', handleMouseLeave); |
||||||
|
goButton.addEventListener('mouseleave', handleMouseLeave); |
||||||
|
|
||||||
|
// bonus
|
||||||
|
const controls = document.querySelector('#controls'); |
||||||
|
|
||||||
|
controls.addEventListener('click', (event) => { |
||||||
|
if (event.target === controls) { |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
let status; |
||||||
|
|
||||||
|
if (event.target === stopButton) { |
||||||
|
status = stopLight.classList.contains('stop') ? 'on' : 'off'; |
||||||
|
|
||||||
|
// or...
|
||||||
|
// if (stopLight.classList.contains('stop')) {
|
||||||
|
// status = 'on';
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// status = 'off';
|
||||||
|
// }
|
||||||
|
} |
||||||
|
else if (event.target === slowButton) { |
||||||
|
status = slowLight.classList.contains('slow') ? 'on' : 'off'; |
||||||
|
} |
||||||
|
else { |
||||||
|
status = goLight.classList.contains('go') ? 'on' : 'off'; |
||||||
|
} |
||||||
|
|
||||||
|
console.log(`${event.target.textContent} bulb ${status}`); |
||||||
|
}); |
||||||
|
})(); |
Binary file not shown.
@ -1,10 +0,0 @@ |
|||||||
/* |
|
||||||
Write JS to make this stoplight work. |
|
||||||
|
|
||||||
When I click on the 'stop' button, |
|
||||||
the top light should turn red. |
|
||||||
When I click on the 'slow' button |
|
||||||
the middle light should turn orange. |
|
||||||
When I click on the 'go' button |
|
||||||
the bottom light should turn green. |
|
||||||
*/ |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.0 MiB |
Loading…
Reference in new issue