我想我忽略了一些事情。这是一个非常简单的旋转瓶游戏。
使用Javascript / jQuery的
$('.bottle').on('click', function(e) {
this.removeAttribute('style');
var deg = 3000 + Math.round(Math.random() * 500);
var css = '-webkit-transform: rotate(' + deg + 'deg);';
this.setAttribute(
'style', css
);
});
CSS:
.bottle {
width: 200px;
height: 200px;
background-image: url(img/bottle.png);
-webkit-transition: -webkit-transform 6s ease-out;
}
HTML:
<div class="bottle"></div>
首次点击瓶子时,这非常有效。但从第二次点击开始,旋转非常慢?
答案 0 :(得分:7)
试试这个:http://jsfiddle.net/sMcAN/
var i = 1;
$('.bottle').on('click', function(e) {
this.removeAttribute('style');
var deg = 3000 + Math.round(Math.random() * 500);
deg = ((-1) ^ i) * deg;
var css = '-webkit-transform: rotate(' + deg + 'deg);';
this.setAttribute('style', css);
i++;
});
答案 1 :(得分:3)
这是因为首先,你将从0变为超过3000的值。但是,这个值总是在3000之内 - 因此差异不够大,而且它仍然需要你定义的6秒。
一种解决方案是确保您偏移该值并使其每次相差几千。
var i = 0, offset = [2000, 4000, 6000, 3000, 5000, 1000];
$('.bottle').on('click', function(e) {
this.removeAttribute('style');
var deg = offset[i] + Math.round(Math.random() * 500);
i++;
if (i > 5) {
i = 0;
}
var css = '-webkit-transform: rotate(' + deg + 'deg);';
this.setAttribute(
'style', css
);
});
答案 2 :(得分:0)
math.round(math.random() * 1000);
试试