【发布时间】:2014-07-11 02:45:54
【问题描述】:
我找到了部分满足我需求的解决方案。当按下一个按钮时,我需要一个 div 旋转 90 度,然后再按下 90 度等。我需要另一个按钮,它会以相同的方式以相反的方向旋转它。我找到了一个 JavaScript Fiddle 并对其稍作修改,但问题是按下按钮时,div 会在每次旋转之前恢复到原来的位置。所以它不可能旋转超过 90 度。我该如何解决?第二个问题是,如果我将 broderSpacing 从“-90”更改为“90”,为什么它只会旋转一次(按钮只能工作一次,然后点击时什么也没有发生)?
HTML
<div id="foo">Text</div>
<button onclick="rotateFoo()">rotate</button>
CSS
#foo {
width:100px;
height:100px;
position:absolute;
top:100px;
left:100px;
border-spacing: 0;
background-color:red;
}
JS
function rotateFoo(){
$('#foo').animate({borderSpacing: -90}, {
step: function(now,fx)
{
$(this).css('-webkit-transform','rotate('+now+'deg)');
$(this).css('-moz-transform','rotate('+now+'deg)');
$(this).css('transform','rotate('+now+'deg)');
},
duration:'slow'
},'linear')
}
【问题讨论】:
-
您的“
now”值从何而来?您需要一种存储元素的新位置(多个元素的数组)的方法,“现在”可以添加到当前位置(或在您实现其他 buttkn 时减去) -
有趣的是我无法弄清楚“现在”的来源。我以linkJSFIDDLE 为基础。
标签: jquery css animation rotation