Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在CSS中实现数字增量动画_Javascript_Html_Jquery_Css - Fatal编程技术网

Javascript 如何在CSS中实现数字增量动画

Javascript 如何在CSS中实现数字增量动画,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我试着创建一个类似于Twitter上类似帖子的计数器的动画 我想达到同样的效果/动画效果。我对如何实现动画感到困惑 以下是我到目前为止在jQuery中所做的工作: $(函数(){ var$number=1; $(“#测试”)。单击(函数(){ var$elem=$(this.find('span'); var$text=$(this.find('span').text(); $number=$number+1; setTimeout(函数(){ $(this).find('span').re

我试着创建一个类似于Twitter上类似帖子的计数器的动画

我想达到同样的效果/动画效果。我对如何实现动画感到困惑

以下是我到目前为止在jQuery中所做的工作:

$(函数(){
var$number=1;
$(“#测试”)。单击(函数(){
var$elem=$(this.find('span');
var$text=$(this.find('span').text();
$number=$number+1;
setTimeout(函数(){
$(this).find('span').removeClass(“static”).addClass(“up”);
}, 0);
setTimeout(函数(){
$elem.text($number);
}, 100);
setTimeout(函数(){
$elem.removeClass(“向上”).addClass(“向下”);
}, 100);
setTimeout(函数(){
$elem.removeClass(“down”).addClass(“static”);
}, 200);
});
});
.up{
显示:内联flex;
不透明度:0;
变换:translate3d(0,-20px,0);
转换:0.1s易入易出;
}
.下来{
显示:内联flex;
不透明度:0;
转换:translate3d(0,20px,0);
}
.静态{
显示:内联flex;
不透明度:1;
变换:translate3d(0,0px,0);
转换:0.1s易入易出;
}


1
您的代码引发异常:

未捕获类型错误:$text.removeClass不是函数

您将
$text
定义为

var$text=$(this.find('span').text();
因此,它是一个普通字符串,这就是为什么
$text.removeClass()
无法工作的原因
你可能是想写信

$elem.removeClass(…)

您的代码引发异常:

未捕获类型错误:$text.removeClass不是函数

您将
$text
定义为

var$text=$(this.find('span').text();
因此,它是一个普通字符串,这就是为什么
$text.removeClass()
无法工作的原因
你可能是想写信

$elem.removeClass(…)

您的代码有两个问题:

  • 如所述,您已将
    $text
    而不是
    $elem
    放置在一个
    设置超时
    中。这是一个直截了当的打字错误
  • 第二个问题是线路:
  • $(this.find('span').removeClass(“static”).addClass(“up”);
    
    setTimeout
    内部,
    this
    变量与
    setTimeout
    外部的
    this
    变量不在同一上下文中。要验证这一点,您可以记录:

    console.log($(this.find('span')==$elem);//应该是假的
    
    要解决此问题,只需更换:

    $(this.find('span').removeClass(“static”).addClass(“up”);
    
    在第一次
    设置超时时
    使用:

    $elem.removeClass(“static”).addClass(“up”);
    

    您可以在下面找到工作代码:

    $(函数(){
    var$number=1;
    $(“#测试”)。单击(函数(){
    var$elem=$(this.find('span');
    var$text=$(this.find('span').text();
    $number=$number+1;
    setTimeout(函数(){
    $elem.removeClass(“static”).addClass(“up”);
    }, 0);
    setTimeout(函数(){
    $elem.text($number);
    }, 100);
    setTimeout(函数(){
    $elem.removeClass(“向上”).addClass(“向下”);
    }, 100);
    setTimeout(函数(){
    $elem.removeClass(“down”).addClass(“static”);
    }, 200);
    });
    });
    
    .up{
    显示:内联flex;
    不透明度:0;
    变换:translate3d(0,-20px,0);
    转换:0.1s易入易出;
    }
    .下来{
    显示:内联flex;
    不透明度:0;
    转换:translate3d(0,20px,0);
    }
    .静态{
    显示:内联flex;
    不透明度:1;
    变换:translate3d(0,0px,0);
    转换:0.1s易入易出;
    }
    
    
    1
    您的代码有两个问题:

  • 如所述,您已将
    $text
    而不是
    $elem
    放置在一个
    设置超时
    中。这是一个直截了当的打字错误
  • 第二个问题是线路:
  • $(this.find('span').removeClass(“static”).addClass(“up”);
    
    setTimeout
    内部,
    this
    变量与
    setTimeout
    外部的
    this
    变量不在同一上下文中。要验证这一点,您可以记录:

    console.log($(this.find('span')==$elem);//应该是假的
    
    要解决此问题,只需更换:

    $(this.find('span').removeClass(“static”).addClass(“up”);
    
    在第一次
    设置超时时
    使用:

    $elem.removeClass(“static”).addClass(“up”);
    

    您可以在下面找到工作代码:

    $(函数(){
    var$number=1;
    $(“#测试”)。单击(函数(){
    var$elem=$(this.find('span');
    var$text=$(this.find('span').text();
    $number=$number+1;
    setTimeout(函数(){
    $elem.removeClass(“static”).addClass(“up”);
    }, 0);
    setTimeout(函数(){
    $elem.text($number);
    }, 100);
    setTimeout(函数(){
    $elem.removeClass(“向上”).addClass(“向下”);
    }, 100);
    setTimeout(函数(){
    $elem.removeClass(“down”).addClass(“static”);
    }, 200);
    });
    });
    
    .up{
    显示:内联flex;
    不透明度:0;
    变换:translate3d(0,-20px,0);
    转换:0.1s易入易出;
    }
    .下来{
    显示:内联flex;
    不透明度:0;
    转换:translate3d(0,20px,0);
    }
    .静态{
    显示:内联flex;
    不透明度:1;
    变换:translate3d(0,0px,0);
    转换:0.1s易入易出;
    }
    
    
    1
    单击时出现一些错误,请检查控制台。我看到了错误,谢谢,但为什么它会给我这个错误?您必须调试代码。代码正在运行,动画部分有任何帮助吗?您问题中的GIF不工作单击时出现一些错误,请检查控制台。我看到了错误,谢谢,但是为什么它会给我这个错误?你必须调试你的代码代码现在可以工作了,动画部分有什么帮助吗?你问题中的GIF不工作了我已经调试了代码,现在可以工作了,但是