javascript - 设置超时问题

标签 javascript settimeout

我试图在 Javascript 中创建一个 jquery fadeto 类型的效果,但我的 setTimeout 命令有问题。

代码如下:

function textfade(y) {
    var x = document.getElementById("test");
    var y;           
    if (y == undefined) {
        y = 1.0;
    } 

    x.style.opacity = y;
    y -=0.1;
    setTimeout(function(){ textfade(y); }, 50);
}

问题是x.style.opacity = y

没有它,超时运行正常。然而,有了它,它会运行一次函数然后就死了。虽然我觉得这是一个简单的错误,但我没有解决它的想法。

如有任何建议,我们将不胜感激。

提前谢谢你。

最佳答案

每次执行 textfade() 时,您都在重新声明 y,有效地破坏/重置传递的参数。

删除:

var y; 

关于javascript - 设置超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700719/

相关文章:

jquery - setTimeout 不适用于延迟

javascript - 想要控制我的动画的 FPS 是继续使用 setTimeout 而不是 requestAnimationFrame 的充分理由吗?

jQuery 文本在 30 秒空闲后消失

javascript - Firefox onLocationChange 并不总是被调用

javascript - 退格键在 Mozilla 浏览器上我的表单的文本区域中不起作用

javascript - 在本地主机上运行时,大型 javascript 文件在 Opera 中被 chop

JavaScript setTimeout 5 秒

javascript - <script> src 没有在浏览器中读取正确的路径名

javascript - Failcallback 中断多个 then

javascript - Electron click() 处理程序未知 JS 语法