jQuery animate() 函数

发布于 2024-12-02 01:46:32 字数 514 浏览 0 评论 0原文

我有一个生命条(0% 生命值 = 0px 宽度;100% 生命值 = 100px):

<div style="width:<?php echo $health ?>"><?php echo $health ?></div>

用户单击“治愈”按钮后,他会收到一些生命值。使用 animate() 函数我使条形增加了宽度。

但我还需要其他东西:更新 div 内的健康值。我也想对其进行动画处理(具有与宽度相同的递增值)。

但我不知道怎么办。你能帮我吗?

LE:

$('div').animate({ width: data.newhealth }, duration: 1500);

它在 getJSON 函数内。

我认为解决方案是在动画过程中经常用 $('div').attr('width') 替换 div 的内容,但我也不知道该怎么做。

I have a health bar (0% health = 0px width; 100% health = 100px):

<div style="width:<?php echo $health ?>"><?php echo $health ?></div>

After the user clicks an "Heal" button, he receives some health. Using the animate() function I made the bar to increase its width.

But I also need something else: to update the health value that is inside the div. I would like to animate this too (to have the same increasing values as the width).

But I don't know how. Can you help me please?

L.E.:

$('div').animate({ width: data.newhealth }, duration: 1500);

It's inside a getJSON function.

I thought the solution would be to replace the div's content with $('div').attr('width') very often during the animation, but I don't know how to do this either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凉城已无爱 2024-12-09 01:46:32

您可以使用动画函数的 step 选项。我这里有一个工作示例http://jsfiddle.net/WxecS/

重要的是:

$('#healer').click(function() {
    $('#div').animate({
        width: '100%'
    }, {
        step: function(now, fx) {
            $(this).text(Math.floor(now) + '%');
        }
    })
});

You can use the step option to the animate function. I have a working example here: http://jsfiddle.net/WxecS/

The important bit is:

$('#healer').click(function() {
    $('#div').animate({
        width: '100%'
    }, {
        step: function(now, fx) {
            $(this).text(Math.floor(now) + '%');
        }
    })
});
无需解释 2024-12-09 01:46:32

这不会为文本设置动画,但会在最后更改它:

http://jsfiddle.net/Ncv7Z/4/

$('#animate').animate({
    width: '100px'
}, 3000, function(){
    this.innerHTML = $(this).width();
});

This wont animate the text, but will change it at the end:

http://jsfiddle.net/Ncv7Z/4/

$('#animate').animate({
    width: '100px'
}, 3000, function(){
    this.innerHTML = $(this).width();
});
从﹋此江山别 2024-12-09 01:46:32

使用 .animate() 的完整回调
http://api.jquery.com/animate/

  $('#health').animate({
    width: 40
  },{ duration: 1000, step: function() {
    $("#health").text($(this).width());
  }});

use complete callback of .animate()
http://api.jquery.com/animate/

  $('#health').animate({
    width: 40
  },{ duration: 1000, step: function() {
    $("#health").text($(this).width());
  }});
浅紫色的梦幻 2024-12-09 01:46:32

使用 step: 函数,如 jquery 站点 中所述

use the step: function like described on jquery site

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文