A simple hover effect using two half circles made from a border-radius and some CSS3 animations.
A Pen by Paul Demers on CodePen.
A simple hover effect using two half circles made from a border-radius and some CSS3 animations.
A Pen by Paul Demers on CodePen.
<div class="content"> | |
<div class="intro"> | |
<h1>Half Circle Hover Effect</h1> | |
<p>A simple hover effect using two half circles made from a border-radius and some CSS3 animations.</p> | |
</div> | |
<hr /> | |
<div class="spinner_wrapper"> | |
<div class="spinner"> | |
<div class="inner_spin"> | |
<span class="halfie top"></span> | |
<span class="halfie bottom"></span> | |
</div> | |
<span class="fullie"><img src="http://lorempixel.com/600/600" /></span> | |
</div> | |
<div class="spinner"> | |
<div class="inner_spin"> | |
<span class="halfie top"></span> | |
<span class="halfie bottom"></span> | |
</div> | |
<span class="fullie"><img src="http://lorempixel.com/600/600/" /></span> | |
</div> | |
<div class="spinner"> | |
<div class="inner_spin"> | |
<span class="halfie top"></span> | |
<span class="halfie bottom"></span> | |
</div> | |
<span class="fullie"><img src="http://lorempixel.com/600/600" /></span> | |
</div> | |
</div> | |
</div> |
@import "compass" | |
$base: 20em | |
$base_minus_one: ($base - 1) | |
* | |
box-sizing: border-box | |
html | |
background: url(http://subtlepatterns.subtlepatterns.netdna-cdn.com/patterns/bedge_grunge.png) repeat | |
body | |
color: #222 | |
.intro | |
text-align: center | |
display: block | |
padding-bottom: .5em | |
margin: 0 auto | |
h1 | |
font-family: 'Oleo Script' | |
text-shadow: white 1px 1px 0 | |
color: rgb(39, 75, 106) | |
.content | |
width: 90% | |
margin: 0 auto | |
.spinner_wrapper | |
width: 72em | |
margin: 0 auto | |
.spinner | |
width: $base | |
height: $base | |
margin: 0 2em | |
cursor: pointer | |
position: relative | |
float: left | |
.inner_spin | |
width: $base | |
height: $base | |
-webkit-transform: rotate(20deg) | |
-webkit-transition: all 1s | |
/* Hardware acceleration FTW! */ | |
-webkit-transform: translateZ(0) | |
-moz-transform: translateZ(0) | |
.fullie, .halfie | |
display: block | |
margin: 0 auto | |
position: absolute | |
.fullie | |
width: ($base - 1) | |
height: ($base - 1) | |
background: #BD4932 | |
border-radius: ($base - 1) | |
z-index: 2 | |
top: 50% | |
left: 50% | |
margin-top: -(($base - 1) / 2) | |
margin-left: -(($base - 1) / 2) | |
.halfie | |
height: ($base / 2) | |
width: $base | |
z-index: 1 | |
&.top | |
border-radius: $base $base 0 0 | |
background: #105B63 | |
&.bottom | |
top: ($base / 2 ) | |
border-radius: 0 0 $base_minus_one $base_minus_one | |
background: #FFD34E | |
.spinner:hover | |
opacity: .95 | |
.inner_spin | |
-webkit-transform: rotate(180deg) | |
img | |
opacity: .25 | |
img | |
width: $base_minus_one | |
height: $base_minus_one | |
border-radius: $base_minus_one | |
opacity: 1 | |
-webkit-transition: all 1s |