-
Notifications
You must be signed in to change notification settings - Fork 0
added transition #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,23 @@ | ||
# Opdracht beschrijving | ||
|
||
## Eindresultaat | ||
Programmeer de volgende transitie van hamburger naar kruisje wanneer de gebruiker met de muis over het menu beweegt: | ||
|
||
 | ||
|
||
## Randvoorwaarden | ||
* Het hamburger-menu bestaat uit één basis-element en twee pseudo-elementen | ||
* De transities worden tweezijdig toegepast (zowel van niet-hover => hover als van hover => niet-hover) | ||
|
||
## Stappenplan | ||
1. Pak de content van EdHub over transities erbij. | ||
2. Maak een container om de menu-balkjes heen in de HTML. We willen namelijk dat de animatie begint als de gebruiker zijn muis _ergens_ over het gehele "vierkant" beweegt, niet alleen over het middelste balkje. | ||
3. Geef die container voor nu even een border in een gekke kleur zodat je goed ziet tot waar hij rijkt. De bedoeling is dat hij precies om de drie balkjes heen staat. | ||
4. Als de gebruiker over de container hovert, willen we dat het middelste balkje langzaam verdwijnt. | ||
5. Tevens mag het bovenste balkje naar beneden draaien en het onderste balkje naar beneden | ||
|
||
## Gratis tips 🤘🏻 (alleen kijken als je vastloopt!) | ||
* _Tip bij stap 3_: haal de margin van het `#menu` element weg en vervang het door padding op het `#container` element | ||
* _Tip bij stap 4_: focus je eerst op de begin- en eindstaat voor je je bezig houdt met transities. Het begin is een zichtbaar balkje. Het eind is een onzichtbaar balkje. | ||
* _Tip bij stap 4 - vervolg_: als je de `opacity` aanpast doe je dat voor het basis element, en automatisch ook voor de pseudo-elementen. Niet ideaal dus, want de buitenste heb je nog nodig. Ga eens op zoek naar wat je kunt doen met de _kleur_ van het middelste balkje. | ||
* _Tip bij stap 5_: Benieuwd hoe je elementen kunt draaien? Google eens op `CSS transform Property` | ||
# Opdracht beschrijving | ||
## Eindresultaat | ||
Programmeer de volgende transitie van hamburger naar kruisje wanneer de gebruiker met de muis over het menu beweegt: | ||
 | ||
## Randvoorwaarden | ||
* Het hamburger-menu bestaat uit één basis-element en twee pseudo-elementen | ||
* De transities worden tweezijdig toegepast (zowel van niet-hover => hover als van hover => niet-hover) | ||
## Stappenplan | ||
1. Pak de content van EdHub over transities erbij. | ||
2. Maak een container om de menu-balkjes heen in de HTML. We willen namelijk dat de animatie begint als de gebruiker zijn muis _ergens_ over het gehele "vierkant" beweegt, niet alleen over het middelste balkje. | ||
3. Geef die container voor nu even een border in een gekke kleur zodat je goed ziet tot waar hij rijkt. De bedoeling is dat hij precies om de drie balkjes heen staat. | ||
4. Als de gebruiker over de container hovert, willen we dat het middelste balkje langzaam verdwijnt. | ||
5. Tevens mag het bovenste balkje naar beneden draaien en het onderste balkje naar beneden | ||
## Gratis tips 🤘🏻 (alleen kijken als je vastloopt!) | ||
* _Tip bij stap 3_: haal de margin van het `#menu` element weg en vervang het door padding op het `#container` element | ||
* _Tip bij stap 4_: focus je eerst op de begin- en eindstaat voor je je bezig houdt met transities. Het begin is een zichtbaar balkje. Het eind is een onzichtbaar balkje. | ||
* _Tip bij stap 4 - vervolg_: als je de `opacity` aanpast doe je dat voor het basis element, en automatisch ook voor de pseudo-elementen. Niet ideaal dus, want de buitenste heb je nog nodig. Ga eens op zoek naar wat je kunt doen met de _kleur_ van het middelste balkje. | ||
* _Tip bij stap 5_: Benieuwd hoe je elementen kunt draaien? Google eens op `CSS transform Property` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,13 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<link rel="stylesheet" href="styles.css"> | ||
<title>Les 4 - Opdracht transitie hamburger icoon naar kruisje</title> | ||
</head> | ||
<body> | ||
<div id="menu"></div> | ||
</body> | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<link rel="stylesheet" href="styles.css"> | ||
<title>Les 4 - Opdracht transitie hamburger icoon naar kruisje</title> | ||
</head> | ||
<body> | ||
<div id="container"> | ||
<div id="menu"></div> | ||
</div> | ||
</body> | ||
</html> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,54 @@ | ||
:root { | ||
--menu-bar-width: 60px; | ||
--menu-bar-height: 10px; | ||
} | ||
|
||
#menu { | ||
background-color: #D84282; | ||
position: relative; | ||
width: var(--menu-bar-width); | ||
height: var(--menu-bar-height); | ||
margin: 100px; | ||
} | ||
|
||
#menu::before, | ||
#menu::after { | ||
background-color: #D84282; | ||
display: block; | ||
content: ""; | ||
width: var(--menu-bar-width); | ||
height: var(--menu-bar-height); | ||
position: absolute; | ||
} | ||
|
||
#menu::before { | ||
left: 0; | ||
top: -20px; | ||
} | ||
|
||
#menu::after { | ||
left: 0; | ||
top: 20px; | ||
} | ||
|
||
:root { | ||
--menu-bar-width: 60px; | ||
--menu-bar-height: 10px; | ||
} | ||
|
||
#container { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @christdoesselaere: |
||
background-color: white; | ||
border: aqua 10px solid; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @christdoesselaere: de border van "container" is nog zichtbaar. |
||
padding: 20px 0; | ||
position: absolute; | ||
} | ||
|
||
#menu { | ||
background-color: #D84282; | ||
position: relative; | ||
width: var(--menu-bar-width); | ||
height: var(--menu-bar-height); | ||
} | ||
|
||
#menu::before, | ||
#menu::after { | ||
background-color: #D84282; | ||
content: ""; | ||
width: var(--menu-bar-width); | ||
height: var(--menu-bar-height); | ||
position: absolute; | ||
} | ||
|
||
#menu::before { | ||
left: 0; | ||
top: -20px; | ||
} | ||
|
||
#menu::after { | ||
left: 0; | ||
top: 20px; | ||
} | ||
#container:hover #menu { | ||
background-color: white; | ||
} | ||
|
||
#container:hover #menu::before { | ||
transform: translateY(20px) rotate(45deg); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @christdoesselaere: de top parameter van "#container:hover #menu::before " is niet gespecificeerd (zou top: 0;) moeten zijn, maar zie dat je het hebt opgelost in de transform-waarde translateY. |
||
} | ||
|
||
#container:hover #menu::after { | ||
transform: translateY(-20px) rotate(-45deg); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @christdoesselaere: de top parameter van "#container:hover #menu::before " is niet gespecificeerd (zou top: 0;) moeten zijn, maar zie dat je het hebt opgelost in de transform-waarde translateY. |
||
} | ||
|
||
#menu, | ||
#menu::before, | ||
#menu::after { | ||
transition: all .2s ease-in-out; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @christdoesselaere: goede oplossing! Die ga ik van je overnemen |
||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@christdoesselaere: Overzichtelijk geschreven code, makkelijk te reviewen!