为 JavaScript 代码创建循环[关闭]

2023-12-21

我想为以下 js 代码创建一个循环。请帮我。

function fade90() { document.getElementById("myDiv").style.opacity="0.90"; setTimeout("fade80()", 100); }
function fade80() { document.getElementById("myDiv").style.opacity="0.80"; setTimeout("fade70()", 100); }
function fade70() { document.getElementById("myDiv").style.opacity="0.70"; setTimeout("fade60()", 100); }
function fade60() { document.getElementById("myDiv").style.opacity="0.60"; setTimeout("fade50()", 100); }
function fade50() { document.getElementById("myDiv").style.opacity="0.50"; setTimeout("fade40()", 100); }
function fade40() { document.getElementById("myDiv").style.opacity="0.40"; setTimeout("fade30()", 100); }
function fade30() { document.getElementById("myDiv").style.opacity="0.30"; setTimeout("fade20()", 100); }
function fade20() { document.getElementById("myDiv").style.opacity="0.20"; setTimeout("fade10()", 100); }
function fade10() { document.getElementById("myDiv").style.opacity="0.10"; setTimeout("hide()", 100); }

我写这个。它是否正确?如果没有请解决这个问题。

function cls_msg(){
    for (var i=1;i<10;i++)
    {
    setTimeout(document.getElementById("myDiv").style.opacity=100-(i*10), 100);
    }
}

Thanks


在回答您的实际问题之前,我为您提供了一个更合适的解决方案来解决您的褪色问题,因为您尝试做得过于复杂。

您应该只修改实际值并将其重新分配给样式,无需调用所有方法并重新查询 DOM。

function fadeIn( node, v ) {
    node.style.opacity = v || 1;

    if( v < 1 ) {
        setTimeout( fadeIn.bind( null, node, v + 0.1 ), 25 );
    }
 }

function fadeOut( node, v ) {
    node.style.opacity = v || 1;

    if( v > 0 ) {
        setTimeout( fadeOut.bind( null, node, v - 0.1 ), 25 );
    }
}

这是完成任务的一种方法的一个非常基本的示例。你可以这样称呼它

fadeOut( document.getElementById("myDiv") );

让浏览器/CSS 过渡如果不需要支持带动画的旧版浏览器,则可以完成这项工作。那可能看起来像

function fadeIn( node ) {
    node.style.transition = 'all 400ms ease-in';
    node.style.opacity = 1;
}

function fadeOut( node ) {
    node.style.transition = 'all 400ms ease-in';
    node.style.opacity = 0;
}

请注意,您可能不仅仅想要设置过渡,还有所有特定的浏览器供应商前缀,例如-ms-转换, -moz-过渡等等,也适用于“不太传统”的浏览器。


要最终回答这个问题,您应该使用Array要循环多个函数,这可能看起来像

[ fade90, fade80, fade70, fade60,
  fade50, fade40, fade30, fade20,
  fade10, hide ].forEach(function( method, i, arr ) {
      setTimeout(function() {
          if( typeof arr[ i+1 ] === 'function' ) {
              !i && method();
              setTimeout( arr[ i+1 ], 25 * i );
          }
      }, 25);
});

请注意,您还应该重写这些方法,那些不应该调用setTimeout对于他们自己来说,他们也不应该重新查询目标节点。我只是想给你举一个我的方法的例子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 JavaScript 代码创建循环[关闭] 的相关文章

随机推荐

  • 我可以使用 SerialPort.Write 发送字节数组吗

    的文档SerialPort Write说 默认情况下 SerialPort 使用 ASCIIEncoding 对字符进行编码 ASCIIEncoding 将所有大于 127 的字符编码为 char 63 或 要支持该范围内的其他字符 请将
  • iif(Iserror())函数仍然返回#error

    我有以下函数在查询中创建一列 MTD IIf IsError FormatNumber 62xx F40 0 FormatNumber 62xx F40 它链接到一个 Excel 文件 人们将数字和文本放在同一列中 本例中为 F40 我需要
  • 是否可以在 Chrome 中创建 ClipboardEvent 实例?

    我需要以编程方式在 Chrome 中创建一个 ClipboardEvent 实例 但是当我运行构造函数时 new ClipboardEvent paste dataType text plain data some data 它抛出以下错误
  • 编写内联事件处理程序是否是不好的做法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 编写内联事件处理程序是一种不好的做法吗 对我来说 当我想在事件处理程序中使用局部变量时 我更喜欢使用它 如下所示 我更喜欢这个 This is
  • 将数据切片(即n×n矩阵)添加到R中的多维矩阵

    根据标题 有没有办法将数据切片 一个 n n 矩阵 附加到 R 中现有的 N 维矩阵 例如 我有以下内容 one lt array 1 dim c 3 3 two lt array 2 dim c 3 3 three lt array 3
  • xamarin 中路径共享违规

    我对 Android 编程很陌生 我有一个代码 它在指定的文件夹中创建一个文件 然后尝试向其中写入一些内容 就像下面这样 path System Environment GetFolderPath System Environment Sp
  • Inno Setup - 更改 MessageBox 语言

    我有这个问题 我做了一个个人消息框 我以一种非常有趣的方式输入了英语和西班牙语 但我希望我的安装程序只显示一种语言 就像 当我在菜单选择器西班牙语 在该消息框中显示西班牙语 如果在菜单选择器中选择意大利语 让该消息框显示意大利语 code
  • WebUSB API 无法找到兼容设备

    我正在尝试通过网页 通过 HTTPS 访问我的 USB 设备 我的 USB 设备已启动并正在运行 并且还启用了实验性 Web 平台功能 chrome flags enable experimental web platform featur
  • C# mvc 从 AJAX 调用返回 JSON 或文件

    我的观点中有这样的东西 var url Url Action DownloadZip Program programNums selectedRow ajax url url dataType json async false succes
  • Firebase 托管自定义域错误

    我最近获得了一个 tk 域名 并愿意将其作为自定义域名链接到 Firebase 托管 阅读文档并遵循教程后 我成功地将我的第一个应用程序部署到 Firebase 托管 可通过默认的 firebaseapp com url 访问它 但是 在尝
  • ASP.net 会员添加自定义列

    在我的母版页中 我有 MembershipUser thisUser Membership GetUser loggedInUserID thisUser ProviderUserKey ToString thisUser让我可以访问所有字
  • ionic 3 深度链接用于重置密码

    我正在使用 ionic 3 创建一个移动应用程序 我需要知道实现重置密码功能的逻辑 到目前为止 我可以向用户发送一封带有重置令牌的电子邮件 我在想 id 用户点击电子邮件中的链接 如果安装了应用程序 那么它应该打开专用于重置密码的应用程序页
  • 如何将轴标题的部分(一个或两个单词)设置为斜体

    有没有办法改变轴标题部分的样式 同时保持其余部分不变 就我而言 我怎样才能斜体y 轴标题中的 细菌 X 据我所知 该命令theme axis title y element text face italic 只能改变整个y轴标题 是吗 gg
  • Openerp 7 到 Odoo 8 - 如何转换数据库

    我正在尝试将 openerp7 迁移到 odoo 8 您知道如何将数据库版本 7 转换为较新的版本 8 吗 谢谢 选项1 要求odoo公 司做开放升级 https upgrade odoo com database upload通过有效的合
  • Ruby 浮点乘法的奇怪问题

    有人在 ruby 中解决这个问题吗 假设我们有 a 8 1999999 我们想将其四舍五入到小数点后两位 即 8 20 然后乘以 1 000 000 得到 8 200 000 我们这样做 a round 2 1000000 to i 但是我
  • NSString 长度和保留计数。需要澄清

    根据以下代码 请指教 NSString str NSString alloc initWithString Hello world NSLog Length lu n str length 11 NSLog Retain count is
  • numpy 负索引 a[:-0]

    我想使用数组切片来修剪我的数组 IE a trimmed a trim left trim right 这太棒了 除非trim right是 0 我得到a trim left 0 这是一个空数组 我想我可以 a trim left a sh
  • TransformClassesWithDesugarForDebug 出错

    我在编译 APK 调试或发布 时遇到问题 Android Studio 3 0 Beta 5 这是我的构建 gradle app buildscript repositories maven url https maven fabric i
  • Sql Server 中的按位与

    我有一个非常典型的情况 我们有一个名为 Users 的表 其中有一列名为 Branches varchar 1000 该组织可以有 1000 个分支机构 因此 如果用户有权访问分支 1 5 和 10 则分支字符串将如下所示 10001000
  • 为 JavaScript 代码创建循环[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想为以下 js 代码创建一个循环