大家好,此刻我正在试图弄清楚如何旋转div并让它停在一个位置。我对此有一些帮助但是我不确定我做错了什么。任何有关代码的帮助都会很棒。
<script type="text/javascript">
var $elie = $("#super");
rotate(1);
function rotate(degree) {
$elie.css({
WebkitTransform: 'rotate(' + degree + 'deg)'
});
$elie.css({
'-moz-transform': 'rotate(' + degree + 'deg)'
});
if (degree < 1196) {
timer = setTimeout(function() {
rotate(++degree);
}, 1);
}
}
答案 0 :(得分:2)
这是我工作的可重用版本。希望它可以帮助你。
$(function () {
var rotateAnimation = function (props) {
// init animation props
var rotateEl = props.el,
curAngle = props.startAngle,
endAngle = props.endAngle;
// scope angle to parent function
var angleValue = 'rotate(' + curAngle + 'deg)';
// define worker function
var rotate = function () {
// increment the angle
curAngle += props.increment;
// see if we are done animating
if (curAngle >= endAngle) {
curAngle = endAngle;
clearInterval(timer);//stop looping
}
// create css value
angleValue = 'rotate(' + curAngle + 'deg)';
rotateEl.css({
'-moz-transform': angleValue,
'-webkit-transform': angleValue,
'-o-transform': angleValue,
'-ms-transform':angleValue
});
};
var timer = setInterval(rotate, props.delay);//let the fun begin
};
$('#super').on('click', function () {
rotateAnimation({
el: $(this),
startAngle: 0,
endAngle: 1234,
delay: 1,
increment: 3
});
});
});
答案 1 :(得分:1)
看起来它正在旋转和停止,但1196的值需要一段时间才能到达。这是一个jsfiddle与正在发生的事情。 http://jsfiddle.net/2x3Us/
HTML:
<div id="super" style="background-color: red">hello</div>
使用Javascript:
var $elie = $("#super");
rotate(1);
function rotate(degree) {
$elie.css({
'-ms-transform': 'rotate(' + degree + 'deg)',
'-webkit-transform': 'rotate(' + degree + 'deg)',
'-o-transform': 'rotate(' + degree + 'deg)',
'-moz-transform': 'rotate(' + degree + 'deg)'
});
console.log(degree);
if (degree < 360) {
timer = setTimeout(function() {
rotate(++degree);
}, 1);
}
}