jQuery - 如何在宽度增加时设置宽度?

发布于 2024-10-30 17:30:15 字数 312 浏览 1 评论 0原文

我正在尝试使用以下代码来创建连续的动画,

var running = function() {
  w = jQuery('#belt').width();
  if(w >= 940)
    jQuery('#belt').width(0);

  jQuery('#belt').animate({width: '+=235px'}, duration, 'linear');
}

jQuery(document).everyTime(duration, running);

但它不起作用,宽度没有重置而是不断增加,我写错了吗?

I am trying to use following codes to create a continuely animatation

var running = function() {
  w = jQuery('#belt').width();
  if(w >= 940)
    jQuery('#belt').width(0);

  jQuery('#belt').animate({width: '+=235px'}, duration, 'linear');
}

jQuery(document).everyTime(duration, running);

But it doesn't work, the width didn't get reset but continuely increasing, did i write wrong?

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

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

发布评论

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

评论(2

╭⌒浅淡时光〆 2024-11-06 17:30:15

您只需使用 complete 参数来实现 jQuery#animate() 定义动画完成时应执行的函数。添加一些递归,等等:

jQuery.fn.continuousAnimation = function() {
  var $this = this;
  return $this.animate({ 'width': '+=235px' }, 400, 'linear', function() {
    $this.width(0).continuousAnimation();
  });
};

jQuery('#belt').continuousAnimation();

演示:http://jsfiddle.net/mathias/dRpgv/

You can simply use the complete parameter for jQuery#animate() to define a function that should be executed when the animation is completed. Add some recursion, et voilà:

jQuery.fn.continuousAnimation = function() {
  var $this = this;
  return $this.animate({ 'width': '+=235px' }, 400, 'linear', function() {
    $this.width(0).continuousAnimation();
  });
};

jQuery('#belt').continuousAnimation();

Demo: http://jsfiddle.net/mathias/dRpgv/

欢你一世 2024-11-06 17:30:15

duration 的值是多少?

更好用

setInterval(函数() {
// 刷新列表 }, 5000)

其中第二个参数是毫秒数。

关于 everyTime 的注意事项

如果您确实想使用 everyTime,则需要将第一个参数设置为字符串,即:

$(文档).everyTime("5s",
函数(i) { }, 0);

不需要使用“线性”
如果您的动画突然停止,请检查持续时间,增加动画时间或使用慢速

jQuery('#belt').animate({宽度:
'+=235px'}, '慢');

what is the value of duration??

better to use

setInterval(function() {
// refresh list }, 5000)

where the second parameter is the number of milliseconds.

Note on everyTime

If really you want to use everyTime, you'll need to make your first parameter a string, that is:

$(document).everyTime("5s",
function(i) { }, 0);

no such need of using 'linear'
if your animate sudden stops then check check the duration, increase animation time or use slow

jQuery('#belt').animate({width:
'+=235px'}, 'slow');

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