Reputation: 3149
I have the following script where the user is supposed to hover over the image and then that image is rotated.
$("#alcazar-image").rotate({
bind:
{
mouseover : function() {
$(this).rotate({animateTo:180})
},
mouseout : function() {
$(this).rotate({animateTo:0})
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://jqueryrotate.com/js/jQueryRotateCompressed.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9 center-block" id="alcazar-row">
<div class="media">
<div class="media-left media-middle">
<a href="#">
<img src="http://www.theo-android.co.uk/github-images/alcazar.png" class="media-object img-thumbnail" id="alcazar-image" alt="alcazar">
</a>
</div>
<div class="media-body">
<div class="media-heading"><h3>Alcazar Park</h3></div>
<p style="font-size:20px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p style="text-align:left"><a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#alcazarModal"> More»</a></p>
</div>
</div>
</div>
However,the hovering effect doesn't work. Any ideas?
Thanks,
Theo.
Upvotes: 1
Views: 355
Reputation: 2667
I'd suggest using the .hover()
event with rotate:
$("#alcazar-image").hover(function() {
$(this).toggleClass("rotate-180");
});
Upvotes: 1
Reputation: 5183
You need not use JavaScript or jquery to achieve what you are trying to do here.
A simple css transform: rotate
should do the job for you.
img:hover {
transform: rotate(720deg);
-ms-transform: rotate(720deg);
-webkit-transform: rotate(720deg);
transition: all 1s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://jqueryrotate.com/js/jQueryRotateCompressed.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9 center-block" id="alcazar-row">
<div class="media">
<div class="media-left media-middle">
<a href="#">
<img src="http://www.theo-android.co.uk/github-images/alcazar.png" class="media-object img-thumbnail" id="alcazar-image" alt="alcazar">
</a>
</div>
<div class="media-body">
<div class="media-heading">
<h3>Alcazar Park</h3>
</div>
<p style="font-size:20px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p style="text-align:left"><a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#alcazarModal"> More»</a>
</p>
</div>
</div>
</div>
Upvotes: 4
Reputation: 4674
just replace your jQuery with this ::
$("#alcazar-image").mouseover(function() {
$(this).css('transform', 'rotate(180deg)');
$(this).css('-ms-transform', 'rotate(180deg)'); /* IE 9 */
$(this).css('-webkit-transform', 'rotate(180deg)'); /* Chrome, Safari, Opera */
}).mouseout(function() {
$(this).css('transform', 'rotate(0deg)');
$(this).css('-ms-transform', 'rotate(0deg)'); /* IE 9 */
$(this).css('-webkit-transform', 'rotate(0deg)'); /* Chrome, Safari, Opera */
});
It will work perfectly to all browser.
Upvotes: 1
Reputation: 9060
Everything is good except you forgot to include jquery and jquery-rotate plugin in code snippet, try playing with below's code :
$("#alcazar-image").rotate({
bind: {
mouseover: function() {
$(this).rotate({
animateTo: 180
})
},
mouseout: function() {
$(this).rotate({
animateTo: 0
})
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://rawgit.com/wilq32/jqueryrotate/master/jQueryRotate.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9 center-block" id="alcazar-row">
<div class="media">
<div class="media-left media-middle">
<a href="#">
<img src="http://www.theo-android.co.uk/github-images/alcazar.png" class="media-object img-thumbnail" id="alcazar-image" alt="alcazar">
</a>
</div>
<div class="media-body">
<div class="media-heading">
<h3>Alcazar Park</h3>
</div>
<p style="font-size:20px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p style="text-align:left"><a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#alcazarModal"> More»</a>
</p>
</div>
</div>
</div>
Upvotes: 1
Reputation: 146
You can do it in CSS.
img{
-webkit-transition: -webkit-transform .8s ease-in-out;
-ms-transition: -ms-transform .8s ease-in-out;
transition: transform .8s ease-in-out;
}
img:hover{
transform:rotate(360deg);
-ms-transform:rotate(360deg);
-webkit-transform:rotate(360deg);
}
Upvotes: 2