【问题标题】:Raphael.js text value animationRaphael.js 文本值动画
【发布时间】:2013-10-24 08:38:44
【问题描述】:

我正在尝试为 raphael.js 中的计数器设置动画,但遇到了一种奇怪的行为。动画中间的文本值等于NaN,我不明白为什么。

这是我的代码:

<html>
<head>
    <title></title>
    <script src="raphael.js"></script>
    <script src="jquery.js"></script>
</head>
<body>
     <script type="text/javascript">
        var r = Raphael(0, 0, 400, 400);
        r.ca.strNumber = function (number) {
            var str = number + '';
            return {"text" : str};
        }

        $(document).ready( function() {
            var t = r.text(200, 200, "1").attr({"font-size": 50, "fill": "black"});
            t.animate({"strNumber": 999}, 500);
        });
    </script>

</body>
</html>

那么它有什么问题呢?如何解决这个问题?

谢谢!

【问题讨论】:

    标签: javascript raphael


    【解决方案1】:

    我假设你想做一个从 1 到 999 的动画计数。我不认为 .animate() 可以帮助你做到这一点,而是你可以使用以下代码从 1 计数到 10:

    <body>
     <script type="text/javascript">
        var r = Raphael(0, 0, 400, 400);
        $(document).ready( function() {
            counter = 1;
            var t = r.text(200, 200, counter).attr({"font-size": 50, "fill": "black"});
    
           var myTimer = setInterval(function(){
              counter ++;
              t.attr('text', counter);
              if (counter>=10){
                clearInterval(myTimer);
              }
            }, 500);
        });
    </script>
    </body>
    

    【讨论】:

      【解决方案2】:

      您得到 NaN 是因为它没有您的自定义属性的初始值。创建文本后添加:

      t.attr({ strNumber: 0 }); // 将初始值设为 0,您可以将其设置为适合您需要的任何数字

      然后你就可以正常做动画了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多