单击时以增量方式旋转图像
Rotating Image In Increments On Click
我正在尝试向我的网站添加一个数字表盘图像,该图像在被单击时会以小幅增量旋转。这里的 javascript 正是我要找的:CSS3 transition on click using pure CSS
但是使用那个代码,它只旋转一次,然后当再次点击时,它又回到原来的位置。我已经尽我最大的能力摆弄代码(包括我尝试随机的事情直到某些东西起作用)并且我已经设法让它在第一次和第二次点击时旋转 36 度,但我不确定之后如何让它继续旋转。我希望它能够在每次点击时旋转 36 度,以便在点击 10 次后,它会回到原来的位置。
我确定解决方案非常简单,但我似乎无法弄清楚。任何帮助将不胜感激。
这是javascript:
$( ".crossRotate" ).click(function() {
//alert($( this ).css( "transform" ));
if ( $( this ).css( "transform" ) == 'none' ){
$(this).css("transform","rotate(36deg)");
} else {
$(this).css("transform","rotate(72deg)" );
}
});
以及 jsfiddle 演示:http://jsfiddle.net/rv5PR/472/
您需要获取当前旋转值,然后将 36
添加到该值,然后使用该值设置元素的旋转:
$( ".crossRotate" ).click(function() {
var rotation = getRotationDegrees($(this)) + 36;
$(this).css("transform","rotate("+rotation+"deg)");
});
获得度数是旋转实际上有点棘手,我正在使用 this answers solution to do that。
编辑
实际上有更好的方法来处理这个问题,我们可以简单地让一个变量存储度数并将其递增 36
。元素突然向另一个方向移动 360 度的问题是由于旋转从 360
附近的某个数字变为接近 0
以上的数字。它检测到它更小,因此逆时针旋转。元素如何存储它的旋转默认情况下会在角度上做 %360
,但是简单地超过 360
并且永远不会将角度重置为较低的值将使它永远不会逆时针旋转。
var degrees = 0;
$( ".crossRotate" ).click(function() {
degrees += 36;
$(this).css("transform","rotate("+degrees+"deg)");
});
我正在尝试向我的网站添加一个数字表盘图像,该图像在被单击时会以小幅增量旋转。这里的 javascript 正是我要找的:CSS3 transition on click using pure CSS
但是使用那个代码,它只旋转一次,然后当再次点击时,它又回到原来的位置。我已经尽我最大的能力摆弄代码(包括我尝试随机的事情直到某些东西起作用)并且我已经设法让它在第一次和第二次点击时旋转 36 度,但我不确定之后如何让它继续旋转。我希望它能够在每次点击时旋转 36 度,以便在点击 10 次后,它会回到原来的位置。
我确定解决方案非常简单,但我似乎无法弄清楚。任何帮助将不胜感激。
这是javascript:
$( ".crossRotate" ).click(function() {
//alert($( this ).css( "transform" ));
if ( $( this ).css( "transform" ) == 'none' ){
$(this).css("transform","rotate(36deg)");
} else {
$(this).css("transform","rotate(72deg)" );
}
});
以及 jsfiddle 演示:http://jsfiddle.net/rv5PR/472/
您需要获取当前旋转值,然后将 36
添加到该值,然后使用该值设置元素的旋转:
$( ".crossRotate" ).click(function() {
var rotation = getRotationDegrees($(this)) + 36;
$(this).css("transform","rotate("+rotation+"deg)");
});
获得度数是旋转实际上有点棘手,我正在使用 this answers solution to do that。
编辑
实际上有更好的方法来处理这个问题,我们可以简单地让一个变量存储度数并将其递增 36
。元素突然向另一个方向移动 360 度的问题是由于旋转从 360
附近的某个数字变为接近 0
以上的数字。它检测到它更小,因此逆时针旋转。元素如何存储它的旋转默认情况下会在角度上做 %360
,但是简单地超过 360
并且永远不会将角度重置为较低的值将使它永远不会逆时针旋转。
var degrees = 0;
$( ".crossRotate" ).click(function() {
degrees += 36;
$(this).css("transform","rotate("+degrees+"deg)");
});