jquery css在每次按下按钮时连续旋转90度

sku*_*sts 5 css jquery animation rotation

我找到了一个部分符合我需求的解决方案.当按下按钮时我需要一个div旋转90度,然后再按90度等等.我需要另一个按钮,它会以相同的方向旋转它.我找到了一个JavaScript小提琴,并略微修改了它,但问题是在按钮按下div将在每次旋转之前恢复到其原始位置.所以它不可能旋转超过90度.我该如何解决?第二个问题是为什么它只旋转一次,如果我将broderSpacing从"-90"改为"90"​​(按钮只工作一次,那么点击没有任何反应)?

的jsfiddle

HTML

<div id="foo">Text</div>
<button onclick="rotateFoo()">rotate</button>
Run Code Online (Sandbox Code Playgroud)

CSS

#foo {
    width:100px;
    height:100px;
    position:absolute;
    top:100px;
    left:100px; 
    border-spacing: 0;
    background-color:red;
}
Run Code Online (Sandbox Code Playgroud)

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')

}
Run Code Online (Sandbox Code Playgroud)

Ant*_*kov 9

我做了一个更简单的例子,请参阅https://jsfiddle.net/HwTMb/1517/

function rotateFoo(){
    var angle = ($('#foo').data('angle') + 90) || 90;
    $('#foo').css({'transform': 'rotate(' + angle + 'deg)'});
    $('#foo').data('angle', angle);
}
Run Code Online (Sandbox Code Playgroud)

另外,我不确定你为什么需要边框间距.