Javascript 使用jquery.each()设置一组对象的动画
我试图通过如下方式传递参数,不断改变一组元素的颜色:Javascript 使用jquery.each()设置一组对象的动画,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,我试图通过如下方式传递参数,不断改变一组元素的颜色: colors = ['#e03d56', '#fecd6e', '#8fe1bf', '#9ab3f1'] i = 0 txtc = $('.text-cycle').css('color', '#e03d56') bgc = $('.bg-cycle').css('background-color', '#e03d56') changeColor = (ob) -> i++; i = i % 4 ac
colors = ['#e03d56', '#fecd6e', '#8fe1bf', '#9ab3f1']
i = 0
txtc = $('.text-cycle').css('color', '#e03d56')
bgc = $('.bg-cycle').css('background-color', '#e03d56')
changeColor = (ob) ->
i++; i = i % 4
action = {}
$.each ob, ->
action[this.toChange] = colors[i]
this.el.animate action, 8000, () ->
changeColor ob
heights '.max-image-place, .max-image'
changeColor [
{el: txtc, toChange: 'color'}
{el: bgc, toChange: 'backgroundColor'}
]
问题是,在动画的第一次迭代之后,作为关键点的元素“color”也会被设置为“backgroundColor”,我不明白为什么
有什么建议吗?这是因为在循环
操作期间,
没有使用空对象重新初始化
拨弄
应该是:
colors = ['#e03d56', '#fecd6e', '#8fe1bf', '#9ab3f1']
i = 0
txtc = $('.text-cycle').css('color', '#e03d56')
bgc = $('.bg-cycle').css('background-color', '#e03d56')
changeColor = (ob) ->
i++; i = i % 4
$.each ob, ->
action = {}
action[this.toChange] = colors[i]
this.el.animate action,
duration: 8000, complete: () -> changeColor ob
#heights '.max-image-place, .max-image'
changeColor [
{el: txtc, toChange: 'color'}
{el: bgc, toChange: 'backgroundColor'}
]
啊哈!谢谢,我知道这很简单!