javascript - 在 jQuery 动画中增加负 css 值

标签 javascript jquery css animation

我正在使用 jQuery 以透视方式转换 div:

function rotate ( id, value ) {
$('#' + id).stop().animate({  borderSpacing: value }, {
    step: function(now,fx) {
        console.log( now );
        $(this).css({
                'transform': 'rotateY('+now+'deg)',
                '-ms-transform': 'rotateY('+now+'deg)',
                '-webkit-transform': 'rotateY('+now+'deg)'
            });  
    },
    duration: 'slow'
});
}

然后我用下面的代码调用它:

$(document).ready(function(){
    $(".left").hover(
        function() {
            rotate( 'right', -60 );
        },
        function() {
            rotate( 'right', 0 );
        }
    );
    $(".right").hover(
        function() {
            rotate( 'left', 60 );
        },
        function() {
            rotate( 'left', 0 );
        }
    );
});

当我将鼠标悬停和鼠标移出类为 right 的元素时,它会流畅地动画透视旋转(它指向左侧)并返回到默认位置。

将鼠标悬停在左侧类的元素上时,动画仍然流畅。但是,当我将元素移出时,它不会动画。它只是一步从 -60 跳到 0。

Console:

0
-4.258052828290663
-5.455508477249294
-6.985045445541011
-58.43305230028757
...
-59.01803258327631
-59.49764722691864
-59.81882866365539
-59.97368490296575
-60
0
0
0
...(42x 0)
0

如您所见,jQuery 不会正确地增加负值。有没有办法让这个动画流畅?

最佳答案

是使用border-spacing作为占位值来做动画,不能设置为负值,所以设置为负值时返回0,使得元素似乎没有动画返回。

您可以改用任何其他属性

$('#' + id).stop(true, true).animate({
    test : value
}, {
    step: function (now, fx) {
        $(this).css({
            'transform': 'rotateY(' + now + 'deg)',
            '-ms-transform': 'rotateY(' + now + 'deg)',
            '-webkit-transform': 'rotateY(' + now + 'deg)'
        });
    },
    duration: 'slow'
});

举几个例子

With border-spacing
Without border-spacing

关于javascript - 在 jQuery 动画中增加负 css 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32258906/

相关文章:

javascript - Angular 路线/输入自动对焦

javascript - 在angularjs中将按钮设置为禁用字符串比较的结果

javascript - 对对象数组进行排序

asp.net-mvc - 可以 $.post 并获取文件下载对话框

html - CSS - 如何将页脚固定到页面底部

python - 如果 user.is_authenticated for Django,模板无法正确呈现

html - 当隐藏第二个 div 的溢出时,div 的一部分在另一个 div 上

javascript - JQuery - 如果链接没有 URL,则将 div 设置为隐藏

javascript - HTML 按钮没有点击

javascript - 如何使用 jquery 缩放 div 内容?