【发布时间】:2014-01-14 11:47:03
【问题描述】:
我有一些代码可以成功地旋转 div 我想要的方式,但是,它只执行一次。我假设这是因为该函数只是添加了 CSS transform 属性,一旦添加它们,浏览器(我在 Win7 上使用 Chrome)并不关心它们是否被第二次添加。有没有办法让div 在我每次点击时旋转,而不是只旋转一次?
jQuery
$(function(){
$('.hanging-div').on('click', function(){
$(this).css({
'transform':'rotate(-360deg)',
'-ms-transform':'rotate(-360deg)',
'-moz-transform':'rotate(-360deg)',
'-o-transform':'rotate(-360deg)'
});
});
});
HTML
<div class="hanging-div"><img src="http://placehold.it/65x350"></div>
CSS
.hanging-div {
margin:0 auto;
display:block;
width:200px;
padding:50px 0;
transition:all 2s;
-moz-transition:all 2s;
-webkit-transition:all 2s;
-o-transition:all 2s;
transform-origin:50% 0%;
-moz-transform-origin:50% 0%;
-webkit-transform-origin:50% 0%;
-ms-transform-origin:50% 0%;
-o-transform-origin:50% 0%;
}
这是小提琴:http://jsfiddle.net/MrP43/1/
编辑
之后我也尝试过删除 transform 属性,但似乎没有效果。
$(function(){
$('.hanging-div').on('click', function(){
$(this).css({
'transform':'rotate(-360deg)',
'-ms-transform':'rotate(-360deg)',
'-moz-transform':'rotate(-360deg)',
'-o-transform':'rotate(-360deg)'
}, function(){
$(this).css({
'transform':'',
'-ms-transform':'',
'-moz-transform':'',
'-o-transform':''
});
});
});
});
【问题讨论】:
-
如果(第二次)更改数字(例如 -360deg 到 -720deg),它会起作用吗?
-
您也可以尝试删除格式并重新添加它(如果 ofc 这不会导致 div 首先转换回来)
-
@GroundZero 我更新了我的帖子,提供了有关删除格式的更多详细信息。我仍在努力将 360 改为 720。