jquery - 使用 jQuery 多次触发 CSS 转换

标签 jquery css transform

我有一些代码可以按我想要的方式成功旋转 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%;
}

这是 fiddle :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':''
                });
        });
    });
});

最佳答案

好的,感谢@GroundZero,我已经弄明白了。我只是将旋转度数设为一个变量,并在每次单击时从该变量中减去 360 度,现在它按预期工作了。现在我想知道这是否是最好的方法?它有效,所以我没有提示,但如果其他人有任何解决方案,我很乐意看到它们。谢谢!

$(function(){
    n = -360;
    $('.hanging-div').on('click', function(){
        $(this).css({
            'transform':'rotate('+n+'deg)',
            '-ms-transform':'rotate('+n+'deg)',
            '-moz-transform':'rotate('+n+'deg)',
            '-o-transform':'rotate('+n+'deg)'
        });
        n-=360;
    });
});

fiddle :http://jsfiddle.net/tuJjg/

关于jquery - 使用 jQuery 多次触发 CSS 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20791297/

相关文章:

javascript - JQuery 会干扰 bokeh.js。为什么?

jquery - 安装 superslides 插件

html - 如何使图像内联而不是换行?

iOS:CSS3 动画中断 div 上的滚动

xamarin.ios - 尝试使用 Transform 在 MonoTouch 中旋转 UIView

jquery - 动画元素变换旋转

javascript - 向文本区域添加空格

jQuery mouseover 不适用于 li 元素

javascript - jQuery fadeIn 动画显示数据

javascript - 为什么这个可点击的下拉菜单没有显示?