Reputation: 1
So I'm trying to make an image rotate, 360 infinite times when "hover". But unfortunately it isn't, I think it maybe because I have used a background element to display the image but I cant think of how to display the image an other way.
Using bootstrap 3, unsure how to use glyphicons
<div class="services">
<i class="icon-html5"></i>
<h4 class="service-heading">HTML5</h4>
<p>Developed with high level of coding and care to provide everyone with a HTML5 compliant markup.</p>
</div>
.services{
background-color:#F5F5F5;
border-radius: 5px 5px 5px 5px;
cursor: pointer;
margin:60px 0;
padding:14px;
position: relative;
}
.services i{
border:10px solid #FFFFFF;
border-radius: 50% 50% 50% 50%;
color:#F4F4F4;
font-size: 18px;
height:100%;
left:50%;
line-height: 100%;
margin: -60px 0 0 -60px !important;
padding:0 !important;
position: absolute;
top:0px;
transition: all 0.3s ease-in-out 0s;
width:140px;
background-color:#F47E7E;
}
.services:hover > i{
animation: 1.5s linear 0s normal none infinite spinAround;
border: 10px solid #FFFFFF;
}
.icon-html5{
background-image: url('../img/html5.png');
background-repeat: no-repeat;
animation: 1.5s linear 0s normal none infinite spinAround;
border: 10px solid #FFFFFF;
background-position:center;
}
JS Fiddle - http://jsfiddle.net/MJXrM/1/
Thanks!
Upvotes: 0
Views: 2730
Reputation: 5159
Do you consider about using sprite sheet animation to implement your Infinite Spin? If you have a animation file, you can implement with following code. This way is more compatible with both old browsers and modern browsers.
<div class="spinner-bg">
<div id="spinner">
</div>
</div>
.spinner-bg
{
width: 44px;
height: 41px;
background:#000000;
}
#spinner
{
width: 44px;
height: 41px;
background:url(./preloadericon.png) no-repeat;
}
<script>
var currentbgx = 0;
var circle = document.getElementById("spinner");
var circleTimer = setInterval(playAnimation, 100);
function playAnimation() {
if (circle != null) {
circle.style.backgroundPosition = currentbgx + "px 0";
}
currentbgx -= 44; //one frame width, there are 5 frame
//start from 0, end at 176, it depends on the png frame length
if (currentbgx < -176) {
currentbgx = 0;
}
}
</script>
You can also find more HTML animation implementation here:
Loading AJAX Spinner Animation
Create CSS Animation in HTML5 Games
Upvotes: -1
Reputation: 2376
If you’re using less with bootstrap, you can just do:
.services > i:hover {
.icon-spin;
}
Upvotes: 1
Reputation: 5974
You are missing something like this in your css:
@-moz-keyframes spinAround {
from {-moz-transform: rotate(00deg); }
to {-moz-transform: rotate(360deg);}
}
@-webkit-keyframes spinAround {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spinAround {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
see fiddle: http://jsfiddle.net/MJXrM/3/
I've also changed this:
.services:hover > i
into this:
.services > i:hover
Upvotes: 1