Geanimeerde radiobuttons

Hiernaast zie je een rijtje radiobuttons. De bovenste is gecheckt. Als je een andere aantikt of -klikt verandert de status met een animatie. Op deze pagina wordt uitgelegd hoe je de animaties maakt. De buttons doen overigens niets.
De animatie is het beste te zien als de eerste button gecheckt is en je dan op de zesde button klikt, of omgekeerd.







Gebruik:

De code van het voorbeeld ziet er als volgt uit:
 
(Zet dit in de <HEAD>.)

<style>
.demo {
  position:relative;
  top:0; left:0;
  border:1px solid black;
  float:left;
  margin:0 40px 20px 0;
  text-align:right;
  padding-left:5px;
}
input.demobutton {
  appearance:none;
  dislay:block;
  margin:10px;
  width:24px; height:24px;
  border-radius:12px;
  cursor:pointer;
  vertical-align:middle;
  box-shadow:hsla(0, 0%, 100%, .15) 0 1px 1px, inset
    hsla(0, 0%, 0%, .5) 0 0 0 1px;
  background-color:hsla(0, 0%, 0%, .2);
  background-image:radial-gradient(hsla(0, 100%, 90%, 1) 0%,
    hsla(0, 100%, 70%, .7) 28%, hsla(0, 100%, 30%, 0.4) 70%);
  background-repeat:no-repeat;
  transition:background-position .25s cubic-bezier(.8, 0, 1, 1),
    transform .5s cubic-bezier(.8, 0, 1, 1);
  outline:none;
}
input.demobutton:checked {
  transition:background-position .2s .15s cubic-bezier(0, 0, .2, 1),
    transform .5s cubic-bezier(0, 0, .2, 1);
}
input.demobutton:active {
  transform:scale(1.5);
  transition:transform 1s cubic-bezier(0, 0, .2, 1);
}
input.demobutton, input.demobutton:active {
  background-position:0 24px
}
input.demobutton:checked {
  background-position:0 0;
}
input.demobutton:checked~input.demobutton, input.demobutton:checked~input.demobutton:active {
  background-position:0 -24px;
}
</style>

(Zet dit in de <BODY> bij voorkeur aan het begin.)

<div class="demo">
<label for "demo1">Eerste</label>
<input class="demobutton" type="radio" id="demo1"
    name="naam" checked><br>
<label for "demo2">Tweede</label>
<input class="demobutton" type="radio" id="demo2"
    name="naam"><br>
<label for "demo3">Derde</label>
<input class="demobutton" type="radio" id="demo3"
    name="naam"><br>
<label for "demo4">Vierde</label>
<input class="demobutton" type="radio" id="demo4"
    name="naam"><br>
<label for "demo5">Vijfde</label>
<input class="demobutton" type="radio" id="demo5"
    name="naam"><br>
<label for "demo6">Zesde</label>
<input class="demobutton" type="radio" id="demo6"
    name="naam"><br>
</div>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb770.zip, 811 bytes.

 
terug

html-770; Laatste wijziging: 22 december 2024