我想使用jquery:
为从html元素中获取的文本字符串设置动画<h1>Animate</h1>
用于jquery部分:
$(document).ready(function() {
$( "h1" ).animate({ fontSize: "90px" }, 1500 )
.animate({ fontSize: "50px" }, 1500 );
});
这会激活整个h1文本值,但我想为h1文本中的每个字符设置动画。
第二个jquery部分:
$(document).ready(function () {
var animateChar = $("h1").text();
for(i=0; i<animateChar.length; i++) {
//alert(i + ': ' + animateChar.charAt(i));
// for every animateChar.charAt[i] want to run this
//jquery animation.
//$( "h1" ).animate({ fontSize: "90px" }, 1500 )
//.animate({ fontSize: "50px" }, 1500 );
}
});
这就是我陷入困境的地方。感谢
答案 0 :(得分:6)
您可以在DOM元素上使用jQuery函数。不是人物分开。您应该为每个字符使用不同的DOM元素:
<span>A</span><span>N</span><span>I</span>...
这样的事必须做到这一点
$('span').each(function() {
var that = $(this);
setTimeout(function() {
that.animate({ fontSize: "90px" }, 1500 )
.animate({ fontSize: "50px" }, 1500 );
},that.index()*100);
});
-edit -
工作jSFIDDLE
-edit 2 -
没有凌乱的HTML JSFIDDLE(它仍然很混乱,但javascript使它变得混乱;)
答案 1 :(得分:0)
<span class="animate">A</span><span class="animate">n</span><span class="animate">i</span><span class="animate">m</span><span class="animate">a</span><span class="animate">t</span><span class="animate">e</span>
$(document).ready(function() {
var count = 0;
function animation(elm) {
if(count == $(".animate").length)
{
clearInterval(id);
return;
}
$( elm ).animate({ fontSize: "90px" }, 1500 )
.animate({ fontSize: "50px" }, 1500 );
count++;
}
var id = setInterval(animation($(".animate")[count]), 3200);//Give time for animation to run.
});
这将为每个角色设置动画。
答案 2 :(得分:0)
如果您想保持HTML清洁,我会添加以下方法将您的字符包装在span
标记中。在动画制作任何内容之前,使用wrapCharacters($("h1"))
执行此onLoad,然后为$(".animate")
返回的字符设置动画。
function wrapCharacters(obj)
{
var html = '';
var text = obj.text();
for (var i = 0; i < text.length; i++)
{
html += '<span class="animate">' + text[i] + '</span>';
}
obj.html(html);
}