Javascript动画级别:初学者
我正在尝试学习Javascript动画,但正如我所想,它在xD中不起作用 更新删除粘贴错误 我试过了Javascript动画级别:初学者,javascript,animation,html,Javascript,Animation,Html,我正在尝试学习Javascript动画,但正如我所想,它在xD中不起作用 更新删除粘贴错误 我试过了 function click_home() { for(i=0;i<=10;i++) { setTimeout(setOpacity("div_home",i),200); } }; function setOpacity(id,value) { document.getElementById(id).style.opacity = valu
function click_home()
{
for(i=0;i<=10;i++)
{
setTimeout(setOpacity("div_home",i),200);
}
};
function setOpacity(id,value) {
document.getElementById(id).style.opacity = value/10;
document.getElementById(id).style.filter = 'alpha(opacity=' + value*10 + ')';
};
函数单击\u home()
{
对于(i=0;i首先,在for
循环中出现语法错误(将,
更改为;
)
您需要将函数传递给setTimeout
,以便它可以定期执行。当前传递的setTimeout
是执行setOpacity(“div_home”,i)
(即未定义的)的结果
如注释中所述,您将发现所有的超时将在200毫秒后执行。要获得动画,您需要错开执行。最简单的方法是将i
添加到延迟计算中;即25*i
我不知道为什么要先在setOpacity
函数中将opacity
和filter
设置为0
;这些重置将立即设置为随后的值
在查找document.getElementById(id).style
时,还应查看缓存document.getElementById(id).style的结果(如果删除上述不必要的重置,则为2)
我在开头写了“大家好:D”,你需要告诉我们为什么它错了;什么是你不想做的,它现在表现出什么行为?我认为它应该是按钮而不是div_home_home@JamWaffles这就是问题所在:什么都没有发生。我编辑了代码中的错误和不正确之处。因为所有的更改都会在后面发生呃200毫秒,除了立即的不透明度跳变外,什么也不会发生。将200改为i*20Nope,这个对我不起作用……我以为这是因为在setOpacity(“div_home,i)”中忘记了“;”但没有。无论如何,非常感谢:)@戴夫:注意到了。更新了。@Bonny1992:这个答案会让你有很长的路要走。在底部写一条评论说“这不管用”无助于我,也无助于其他任何人让你走完剩下的路(不管剩下的问题是什么)。更具体一些。并将200改为i*20,但没有任何东西出现。
<td id="button_home" onclick="click_home();"> Home </td>
function click_home()
{
for(i=0;i<=10;i++)
{
setTimeout(function () {
setOpacity("div_home",i)
}, 200);
}
};
function click_home()
{
function delay(i) {
setTimeout(function () {
setOpacity("div_home",i)
}, 200);
}
for(i=0;i<=10;i++)
{
delay(i);
}
};
function setOpacity(id,value) {
var style = document.getElementById(id).style;
style.opacity = value/10;
style.filter = 'alpha(opacity=' + value*10 + ')';
};