当我单击div #cart-button且动画结束时,光标必须更改为正常而不是指针,并再次单击时返回指针。 (cursor: pointer;是CSS文件中div的默认样式)。

我试图将document.getElementById("cart-button").style.cursor="pointer";放在else标记之后,但是我做错了。

js代码:

$(document).ready(function() {
    var expanded = false;
    $('#cart-button').click(function() {
        if (!expanded) {
            $(this).animate({ 'top' : '380px' }, { duration : 400 });
            expanded = true;
        }
        else {
            $(this).animate({ 'top' : '226px' }, { duration: 400 });
            expanded = false;
        }
    });
});

最佳答案

您可以通过在动画完成后调用匿名函数来做到这一点,如下所示:

对于您的if语句:

$(this).animate({top: '380px'}, 400, function() { // anonymous function
    $('#cart-button').css({cursor: 'default'}); // sets cursor to default immediately after animation completes
});
expanded = true;


并为您的else语句:

$(this).animate({top: '226px'}, 400, function() {
    $('#cart-button').css({cursor: 'default'});
});
expanded = false;


我相信CSS中的“正常”光标被称为默认光标,因此您需要将其设置为默认光标。

我还更改了代码的某些格式,但是可以随意使用您喜欢的任何方式。

10-05 18:50