当我将以下JS函数从jQuery 1.4.2更新到最新的1.11.2时,className Steam不再具有动画效果。
$(window).load(function(){
function animSteam(){
$('<span>',{
className:'steam'+Math.floor(Math.random()*2 + 1),
css:{
marginLeft : -10 + Math.floor(Math.random()*20)
}
}).appendTo('#rocket').animate({
left:'-=58',
bottom:'-=100'
}, 120,function(){
$(this).remove();
setTimeout(animSteam,10);
});
}
function moveRocket(){
$('#rocket').animate({'left':'+=100'},5000).delay(1000)
.animate({'left':'-=100'},5000,function(){
setTimeout(moveRocket,1000);
});
}
moveRocket();
animSteam();
});
这是一个很酷的动画,我讨厌放松,我不确定哪个功能已被弃用。
答案 0 :(得分:2)
名称“class”必须在对象中引用,因为它是一个JavaScript保留字,并且不能使用“className”,因为它引用了DOM属性,而不是属性。
答案 1 :(得分:2)
检查出来:http://bugs.jquery.com/ticket/9150#comment:1
这从未得到支持,巧合的是它有效。要设置的属性是class,而不是className。
所以,看起来你想要的是:
$('<span>',{
'class': 'steam'+Math.floor(Math.random()*2 + 1),
css:{
marginLeft : -10 + Math.floor(Math.random()*20)
}
})