Skip to content

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 23 additions & 23 deletions README.md
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:

![Hamburger icoon animatie](./hamburger-icoon-animatie.gif)

## 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:
![Hamburger icoon animatie](./hamburger-icoon-animatie.gif)
## 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`
22 changes: 12 additions & 10 deletions index.html
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>
87 changes: 54 additions & 33 deletions styles.css
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 {

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!

--menu-bar-width: 60px;
--menu-bar-height: 10px;
}

#container {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christdoesselaere:
Het activatie-kader lijkt nu wat groot: het was de bedoeling om de transitie aan te roepen bij het hoveren over een van de drie balkjes.
In de antwoorden wordt er een width gespecificeerd: width: var(--menu-bar-width), die ontbreekt nog in jouw oplossing;

zie bijlage ter verduidelijking
cd1

background-color: white;
border: aqua 10px solid;

Choose a reason for hiding this comment

The 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);

Choose a reason for hiding this comment

The 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);

Choose a reason for hiding this comment

The 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;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christdoesselaere: goede oplossing! Die ga ik van je overnemen

}