【问题标题】:Delay method to add class to div将类添加到 div 的延迟方法
【发布时间】:2014-07-27 15:52:10
【问题描述】:

我正在尝试创建一种“滑块”。我在一个名为 #slider 的单个 div 中的一行中有 9 个项目。

JsFiddle

slider 是 1860px 宽,但一次只显示 620px(因为父级是 overflow:hidden

我想移动slider 的位置,在大约 6 秒的延迟后一次显示另外 3 个项目。然后它应该在 6 秒后再次移动,然后返回。

所以我创建了两个类:

.slideLeft620{
    left:-620px;
}

.slideLeft1240{
    left:-1240px;
}

在标准之间动画(没有这个left 值)我希望能让内容看起来“滑动”。

所以我想:

  1. 6 秒后,将slideLeft620 类添加到slider
  2. 再过6秒,删除slideLeft620并将slideLeft1240添加到slider
  3. 再过 6 秒,删除类 slideLeft1240

这是我试图开始的(目前只是做第一件事),但我无法让它发挥作用。

$("#slider").addClass("slideLeft620").delay(100);

(我知道 100 是一个随机值)。

知道为什么这不起作用吗?延迟应该在片刻之后调用 .addClass 吗?

编辑:建议先调用 .delay 似乎不起作用:

$("#slider").delay(100).addClass("slideLeft620");

【问题讨论】:

  • 我很确定您需要在 addClass 之前调用延迟。 $("#slider").delay(6000).addClass("slideLeft620").delay(6000).removeClass("slideLeft620").addClass("slideLeft1240");
  • @A1rPun 感谢您的建议,尝试过但不起作用?有关更改,请参阅 OP。
  • 听起来你可能会更好地使用 css3 动画 - 看看this post
  • 这已经做了一千种方法,jQuery.delay() 不会是你唯一的延迟。只需选择一个轮播,例如查看owlgraphic.com/owlcarousel/#demo

标签: javascript jquery html css


【解决方案1】:

delay() 仅适用于添加到 FX 队列的 jQuery 方法,并且基本上只是动画方法,它不适用于 addClass,您可以使用 timeOut 代替

setTimeout(function() {
    $("#slider").addClass("slideLeft620");
}, 100);

【讨论】:

  • 谢谢,已经添加了这个,但似乎还没有添加类:jsfiddle.net/K5Pk3/5
  • 我相信如果你包含 jQuery UI 它会起作用...它可以为类设置动画 (addClass)
  • 我希望上面的代码会导致类被添加到滑块中。
  • 谢谢,已将 jQuery UI 添加到小提琴中,并且可以正常工作。知道如何在上面添加幻灯片动画吗?以及如何在进一步 6 之后删除该类并与上述其他类交换?
  • ^ 如果您只是将 jQuery 添加到小提琴中,它会添加类就好了。请注意,100 毫秒是 0.1 秒,所以不会很明显。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-22
  • 1970-01-01
  • 2013-08-16
相关资源
最近更新 更多