我发现了如何使用JQuery旋转div的链接。
Rotating a Div Element in jQuery以及其他一些文章。
代码如下
$(function() {
var $elie = $("#wheel");
rotate(0);
function rotate(degree) {
// For webkit browsers: e.g. Chrome
$elie.css({
WebkitTransform : 'rotate(' + degree + 'deg)'
});
// For Mozilla browser: e.g. Firefox
$elie.css({
'-moz-transform' : 'rotate(' + degree + 'deg)'
});
$elie.css({
'-ms-transform' : 'rotate(' + degree + 'deg)'
});
// Animate rotation with a recursive call
setTimeout(function() {
rotate(++degree);
}, 5);
}
});
有人可以帮我把这段代码扩展为顺时针和逆时针旋转元素,就像方向盘一样
答案 0 :(得分:4)
你可以扩展jQuery.animate()来创建像这样的jsfiddle
$.fx.step['degree']=function(fx){
if(! fx.deg){
fx.deg=0;
if($(fx.elem).data("degree")){
fx.deg=$(fx.elem).data("degree")
}
}
$(fx.elem).css({"WebkitTransform":"rotate("+Math.floor(fx.deg+(fx.end*fx.pos))+"deg)","-moz-transform":"rotate("+Math.floor(fx.deg+(fx.end*fx.pos))+"deg)","-ms-transform":"rotate("+Math.floor(fx.deg+(fx.end*fx.pos))+"deg)"});
$(fx.elem).data("degree",Math.floor(fx.deg+(fx.end*fx.pos))); }
答案 1 :(得分:2)
你只需要更改setTimeout中的代码以使增量/减量随机
// Animate rotation with a recursive call
setTimeout(function() {
increment= Math.random() < 0.5 ? -1 : 1;
degree+=increment;
rotate(degree);
}, 5);
或
increment = Math.floor(Math.random()*3)-1;
表示-1,0,1次动作