HTML & CSS

 OPGAVER TIL HTML & CSS – ANIMATION – BONUS 3

Opgave 3

Opgave 3 – Del 1

Først skal vi sætte baggrunden op og dertil Rubix boksen inde i html’en. Dette handler om at lave en parent/forælder, children/børn og siblings/søskene.
  • Lav en ny pen i Codepen.io
  • Lav en div’boks og giv den class= “mom”
  • Lav nu endnu et søster til 1. div boks og giv den class= “sister”

Således her
< div class=”mom”>< /div>
< div class=”sister”>< /div>

Vi skal dernæst laver tilhørende klasser i CSS’en, hhv mom og sister

Opgave 3 – Del 2

Nu skal vi så lave klasserne i CSS’en til mom og sister. Her skal der bruges et billede til stjernerne, linket kommer her:

.mom{ /*parent*/
  height: 280px;
  width: 280px;

  background-color: black;
  padding: 10px;
  margin-left: 300px;
  margin-top: 150px;
  position: absolute;
}
.sister{ /*sibling*/
  height: 600px;
  width: 1000px;
  background-color: red;
}
 
 

(Husk at alt der står i mellem /* herinde */ ikke vises)

Opgave 3 – Del 3

Nu skal vi så have sat alle børnene/children ind

< div id=”mom” class=”mom” >
   < div id=”child1″ class=”child” >< /div >
   < div id=”child2″ class=”child” >< /div >
   < div id=”child3″ class=”child” >< /div >

   < div id=”child4″ class=”child1″ >< /div >
   < div id=”child5″ class=”child1″ >< /div >
   < div id=”child6″ class=”child1″ >< /div >

   < div id=”child7″ class=”child2″ >< /div >
   < div id=”child8″ class=”child2″ >< /div >
   < div id=”child9″ class=”child2″ >< /div >
< /div >
< div id=”sister” class=”sister” >< /div >

Og alle børnene er selvfølgelig opdelt i rækker med en #id der giver barnet identifikations tallet og en class for at definere gruppe.

1. række har derfor id=1, 2, 3 – gruppe “child”
2. række har derfor id=4, 5, 6 – gruppe “child1”
3. række har derfor id=7, 8, 9 – gruppe “child2”
1
2
3
4
5
6
7
8
9

Opgave 3 – Del 4

Det næste nu er at definere alle børnene, ved hjælp af deres class/gruppe.

Det gør vi ved at lave en child og kopiere(ctrl+c) den og sætte ind neden under(ctrl+v) 2 gange, derefter justere vi i child1 og child2 så rækker ligger ved siden af hinanden med 3 bokse i hver.

Det ser således ud:

.child{ /*child*/
  height: 80px;
  width: 80px;

  background-color: yellow;
  position: absolute;
 
margin-left: 10px;
  margin-top: 10px;

  box-shadow: 5px 10px 20px black inset;
}
.child1{ /*child*/
  height: 80px;
  width: 80px;

  background-color: yellow;
  position: absolute;
  margin-left: 100px;

  margin-top: 10px;

  box-shadow: 5px 10px 20px black inset;
}
.child2{ /*child*/
  height: 80px;
  width: 80px;

  background-color: yellow;
  position: absolute;
  margin-left: 190px;

  margin-top: 10px;

  box-shadow: 5px 10px 20px black inset;
}


Opgave 3 – Del 5

I denne del skal vi kode alle 9 bokse med deres #id. Der er ikke meget men hver boks skal sidde forskelligt og bevæge sig forskelligt fra hinanden når vi holder musen over mor boksen.

#child1{ /*child*/
  transform-origin: top left;
}

#child2{ /*child*/
  position: absolute;
  margin-top: 100px;
  transform-origin: center left; 
}

#child3{ /*child*/
  position: absolute;
  margin-top: 190px;
  transform-origin: bottom left;
}

#child4{ /*child*/
  position: absolute;
  margin-top: 10px;
  transform-origin: top center;
}

#child5{ /*child*/
  position: absolute;
  margin-top: 100px;
  transform-origin: center;
}

#child6{ /*child*/
  position: absolute;
  margin-top: 190px;
  transform-origin: bottom;
}

#child7{ /*child*/
  position: absolute;
  margin-top: 10px;
  transform-origin: top right;
}

#child8{ /*child*/
  position: absolute;
  margin-top: 100px;
  transform-origin: center right;
}

#child9{ /*child*/
  position: absolute;
  margin-top: 190px;
  transform-origin: bottom right;
}

Bemærk at der benyttes # her for at definere at det er en id og ikke en klasse.

Opgave 3 – Del 6

I denne del skal vi lave mouse over effekten for mor boksen. Altså når musen rører hende, så sker der noget med hende. Derfor skal der også laves en @keyframe til.

.mom:hover {
  animation: extra2 5s infinite linear;
}
@keyframes extra2 {
   0% {transform: scale(100%, 100%);}
  50% {transform: scale(150%, 150%);}
 100% {transform: scale(100%, 100%);}
}

Dette gør at mor boksen vokser med halv størrelse(100%+50%) og mindskes igen(ned til 100% igen).

Opgave 3 – Del 7

Nu skal vi så til at kode børnenes reaktion NÅR vi rammer boksen “mom”.

.mom:hover .child{ /*child reaktion*/
  background-color: purple;
  animation: extra 5s infinite linear;
}
.mom:hover .child1{ /*child reaktion*/
  background-color: purple;
  animation: extra 5s infinite linear;
}
.mom:hover .child2{ /*child reaktion*/
  background-color: purple;
  animation: extra 5s infinite linear;
}

Nu skal vi så lave @keyframes den ene der styrer alle 3 grupper. Så alle grupper bevæges når man holder musen over “mom”
@keyframes extra{
   0% { transform: rotate(-360deg); background-color: orange; }
  40% { background-color: red; }
  60% { background-color: blue; }
  100% { transform: rotate(360deg); background-color: purple; border-radius: 50%; }
}


Opgave 3 – Del 8

Nu skal sættes farver på boksen “sister” (den store røde kasse). 

.mom:hover + .sister{ /*child reaktion*/
  animation: extra1 5s infinite linear;
}
@keyframes extra1{
   0% { background: #3e5afb; }
  25% { background: #3e5; }
  50% { background: yellow; }
  75% { background: red; }
  90% { background: purple; }
 100% { background: blue; }
}

Når man holder musen over mor SÅ(+) sker der noget for søster boksen

Opgave 3 – Del 9

Nu til aller sidste del, nemlig at give det blå skær! Det gør vi ved at give en hover effekt på klasserne/grupperne.

Nede i CSS’en skal der så se sådan her ud:
.child:hover {
  box-shadow: 0 0 5px #03e9f4,
              0 0 25px #03e9f4,
              0 0 50px #03e9f4,
              0 0 200px #03e9f4;
}
.child1:hover {
  box-shadow: 0 0 5px #03e9f4,
              0 0 25px #03e9f4,
              0 0 50px #03e9f4,
              0 0 200px #03e9f4;
}
.child2:hover {
  box-shadow: 0 0 5px #03e9f4,
              0 0 25px #03e9f4,
              0 0 50px #03e9f4,
              0 0 200px #03e9f4;
}

Bemærk at der er en meget mere simpelt måde at med 1 linje på box-shadow
dette er for at lære at der kan benyttes flere. Men det kan være en ekstra opg 

   
     

Her under vises/eksekveres koden.

   
 

Ekstra opgave

1. Prøv at juster på tallene i Opgave 3 – Del 9