<div class="dd">
<span class="letter d">D</span>
<span class="letter v">V</span>
<span class="letter l">L</span>
<span class="letter p">P</span>
<span class="line nesw"></span>
<span class="line nwse"></span>
</div>
<a href="#" class="replay">Replay</a>
html,
body {
height: 100%;
}
body {
background: radial-gradient(#fff, #bbb);
font: 400 100% 'Raleway', sans-serif;
}
.dd {
animation:
circleGrow 500ms 500ms forwards,
circleScale 950ms 500ms forwards
;
background: #333;
border-radius: 50%;
color: #fff;
font-size: 1.3em;
height: 0;
left: 50%;
opacity: 0;
overflow: hidden;
position: absolute;
text-decoration: none;
top: 50%;
width: 0;
}
.letter {
display: block;
height: 10em;
left: 0;
line-height: 10em;
opacity: 0;
position: absolute;
text-align: center;
top: 0;
width: 10em;
}
.d {
animation: dLetter 250ms 1000ms forwards;
left: 1.75em;
}
.v {
animation: vLetter 250ms 1150ms forwards;
left: -1.75em;
}
.l {
animation: lLetter 250ms 1300ms forwards;
top: 1.65em;
}
.p {
animation: pLetter 250ms 1450ms forwards;
top: -1.65em;
}
.line {
background: #fff;
display: block;
height: 6em;
left: 50%;
margin: -3em 0 0 0;
opacity: 1;
position: absolute;
top: 50%;
width: 0.075em;
}
.nwse {
animation: nwse 250ms 1600ms forwards;
transform: translate(-7.5em, -7.5em) rotateZ(-45deg);
}
.nesw {
animation: nesw 250ms 1850ms forwards;
transform: translate(-7.5em, 7.5em) rotateZ(45deg);
}
.replay {
background: rgba(0, 0, 0, 0.5);
border-radius: 0.2em;
color: #fff;
display: block;
font-size: 0.9em;
left: 0.75em;
opacity: 0.5;
padding: 0.5em 0.75em;
position: absolute;
text-decoration: none;
transition: 300ms;
top: 0.75em;
}
.replay:hover,
.replay:focus {
opacity: 1;
}
@keyframes circleGrow {
to {
height: 10em;
margin: -5em 0 0 -5em;
opacity: 1;
width: 10em;
}
}
@keyframes circleScale {
50% {
transform: scale(1.1);
},
100% {
transform: scale(1);
}
}
@keyframes dLetter {
to {
left: -1.75em;
opacity: 1;
}
}
@keyframes vLetter {
to {
left: 1.75em;
opacity: 1;
}
}
@keyframes lLetter {
to {
opacity: 1;
top: -1.65em;
}
}
@keyframes pLetter {
to {
opacity: 1;
top: 1.65em;
}
}
@keyframes nesw {
to {
transform: rotateZ(45deg);
opacity: 1;
}
}
@keyframes nwse {
to {
transform: rotateZ(-45deg);
opacity: 1;
}
}
resetAnimation = ( e ) ->
e.preventDefault()
lines = document.querySelectorAll( '.dd' )
i = lines.length
while i--
elem = lines[ i ]
clone = elem.cloneNode( true )
elem.parentNode.replaceChild( clone, elem )
replay = lines = document.querySelector( '.replay' )
replay.addEventListener( 'click', resetAnimation )
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.