【问题标题】:How to convert this "JavaScript" to a "Jquery"如何将此“JavaScript”转换为“Jquery”
【发布时间】:2021-06-24 12:49:58
【问题描述】:

我有一个在 chrome kiosk 模式下使用的 HTML 页面(用于永久显示,而不是常规网站使用)

此页面显示信息并有一个 jquery 幻灯片,在该幻灯片之上是一个通过 javascript 实现的动画。

这是它的脚本:

function ovl00() {
    document.getElementById('OV00').style.opacity = '1';
    document.getElementById('OV01').style.opacity = '0';
    document.getElementById('OV02').style.opacity = '0';
    document.getElementById('OV03').style.opacity = '0';
    document.getElementById('OV04').style.opacity = '0';
    document.getElementById('OV05').style.opacity = '0';
    document.getElementById('OV06').style.opacity = '0';
    document.getElementById('OV07').style.opacity = '0';
    document.getElementById('OV08').style.opacity = '0';
    document.getElementById('OV09').style.opacity = '0';
    document.getElementById('OV10').style.opacity = '0';
    document.getElementById('OV11').style.opacity = '0';
    document.getElementById('OV12').style.opacity = '0';
    document.getElementById('OV13').style.opacity = '0';
    document.getElementById('OV14').style.opacity = '0';
    document.getElementById('OV15').style.opacity = '0';
    document.getElementById('OV16').style.opacity = '0';
    document.getElementById('OV17').style.opacity = '0';
    document.getElementById('OV18').style.opacity = '0';
    document.getElementById('OV19').style.opacity = '0';
    document.getElementById('OV20').style.opacity = '0';
    document.getElementById('OV21').style.opacity = '0';
    document.getElementById('OV22').style.opacity = '0';
    document.getElementById('OV23').style.opacity = '0';
    document.getElementById('OV24').style.opacity = '0';
    document.getElementById('OV25').style.opacity = '0';
    document.getElementById('OV26').style.opacity = '0';
    setTimeout(ovl01, 10702);
}
function ovl01() {
    document.getElementById('OV01').style.opacity = '1';
    setTimeout(ovl02, 10702);
}
function ovl02() {
    document.getElementById('OV02').style.opacity = '1';
    document.getElementById('OV00').style.opacity = '0';
    setTimeout(ovl03, 10702);
}
function ovl03() {
    document.getElementById('OV03').style.opacity = '1';
    setTimeout(ovl04, 10702);
}
function ovl04() {
    document.getElementById('OV04').style.opacity = '1';
    setTimeout(ovl05, 10702);
}
function ovl05() {
    document.getElementById('OV05').style.opacity = '1';
    setTimeout(ovl06, 10702);
}
function ovl06() {
    document.getElementById('OV06').style.opacity = '1';
    setTimeout(ovl07, 10702);
}
function ovl07() {
    document.getElementById('OV07').style.opacity = '1';
    setTimeout(ovl08, 10702);
}
function ovl08() {
    document.getElementById('OV08').style.opacity = '1';
    setTimeout(ovl09, 10702);
}
function ovl09() {
    document.getElementById('OV09').style.opacity = '1';
    setTimeout(ovl10, 10702);
}
function ovl10() {
    document.getElementById('OV10').style.opacity = '1';
    setTimeout(ovl11, 10702);
}
function ovl11() {
    document.getElementById('OV11').style.opacity = '1';
    setTimeout(ovl12, 10702);
}
function ovl12() {
    document.getElementById('OV12').style.opacity = '1';
    setTimeout(ovl13, 10702);
}
function ovl13() {
    document.getElementById('OV13').style.opacity = '1';
    setTimeout(ovl14, 10702);
}
function ovl14() {
    document.getElementById('OV14').style.opacity = '1';
    setTimeout(ovl15, 10702);
}
function ovl15() {
    document.getElementById('OV15').style.opacity = '1';
    setTimeout(ovl16, 10702);
}
function ovl16() {
    document.getElementById('OV16').style.opacity = '1';
    setTimeout(ovl17, 10702);
}
function ovl17() {
    document.getElementById('OV17').style.opacity = '1';
    setTimeout(ovl18, 10702);
}
function ovl18() {
    document.getElementById('OV18').style.opacity = '1';
    setTimeout(ovl19, 10702);
}
function ovl19() {
    document.getElementById('OV19').style.opacity = '1';
    setTimeout(ovl20, 10702);
}
function ovl20() {
    document.getElementById('OV20').style.opacity = '1';
    setTimeout(ovl21, 10702);
}
function ovl21() {
    document.getElementById('OV21').style.opacity = '1';
    setTimeout(ovl22, 10702);
}
function ovl22() {
    document.getElementById('OV22').style.opacity = '1';
    setTimeout(ovl23, 10702);
}
function ovl23() {
    document.getElementById('OV23').style.opacity = '1';
    setTimeout(ovl24, 10702);
}
function ovl24() {
    document.getElementById('OV24').style.opacity = '1';
    setTimeout(ovl25, 10702);
}
function ovl25() {
    document.getElementById('OV25').style.opacity = '1';
    setTimeout(ovl26, 10702);
}
function ovl26() {
    document.getElementById('OV26').style.opacity = '1';
    setTimeout(ovl00, 10702);
}

我想要转换的原因是(我猜)大多数简单:做一些研究我了解到Chrome实现了一些节能选项,当标签/窗口不是“活动”一个时,JavaScript触发器被慢下来一分钟一次。

这显然会使整个幻灯片+动画不同步并搞砸。 从我所见和了解到的情况来看,jquery 不受此影响。

所以我想让 HTML 页面失败/面向未来,以避免计时器节流。

在当前设置下,以 Kiosk 模式显示 HTML 的 PC 处于双显示模式:这意味着 chrome 通过 HDMI 2 处于全屏模式,并且通过 HDMI 1 在主显示器上完成工作。

所以这使得 chrome(从 windows 的角度来看)通常只是一个后台应用程序。

我担心的是,这个 chrome 实现迟早会弄乱当前的幻灯片...

我还应该指出,我对编码几乎一无所知,并且通过谷歌搜索和复制+粘贴完成了整个 HTML 和脚本,所以我希望我对此的解释足以让真正的编码人员理解并且这里的人可以将我引导到转换器应用程序(如 wav 到 mp3,但用于脚本)或类似的。

任何帮助表示赞赏!

-萨布丽娜

【问题讨论】:

  • 我想转换它的原因是 - 这是维护的噩梦。我不敢相信你创造了 26 行/功能都一样。我会在 3 或 4 后放弃...
  • 如果你在正确的位置添加类,你的整个ovl00 可以替换为$(".slideshow .ov").hide()(没有提供 html,所以不建议这样做)。所有其他人都可以是一个 $(".slideshow .ov.active").fadeOut().next().addClass(".active").fadeIn() 并检查最后一个 - 或者甚至跳过淡出/淡入并使用 css .ov { opacity:0 } .ov.active { opacity: 1} - 很多选项:)
  • 感谢您的评论!似乎你知道你的东西,所以我试图添加更多细节(希望得到帮助)你可以在这里找到完整的 html [链接] (sabrina-ambiencemusic.com/SLD/SL9.html) 它包含 Javascript+Jquery 混合。这是一个简短的 HDMI 抓取,直观地展示了我尝试实现的目标 [链接] (drive.google.com/file/d/1oFMEIGWDW-_sB-haQCQRxpS54jxXv5Oy/view),其原因主要是为了避免电位节流并确保正常运行。同样在当前设置中,动画的淡入淡出会在显示几个小时后不同步...
  • 关于使用类的想法。我过去尝试过,但结果不是我所希望的(关于动画)。但这可能是由于我的编码知识非常有限,这也是我创建 26 行相同功能的原因(我不知道更好)另外,感谢您迄今为止的帮助以及潜在的未来帮助!现在也尝试使用dreamweaver 您的上述建议(:

标签: javascript html jquery converters


【解决方案1】:

您使用的仅有 2 种 javascript 查询是

document.getElementById('OV00').style.opacity = '1';
setTimeout(ovl02, 10702);

和第一个等效的jQuery是

$("#OV00").css({ opacity: "1" });

我认为 jQuery 中的 setTimeout 没有不同的功能,同样可以。因此,您只需将包含 document.getElement... 的每一行更改为我提到的具有适当 ID 和不透明度值的行。

所以最后这就是你所要求的。但我认为这实际上并不能解决您的 chrome 限制动画的问题。 jQuery 与 JavaScript 没有什么不同,它们都由浏览器中的同一个 javascript 引擎执行。 jQuery 只是一个库,它为开发人员编写复杂的 javascript 提供了一种更简单的语法,并且在各种前端 javascript 框架到来之后几乎已经过时了。

【讨论】:

  • 感谢您的回答!此时我很幸运,我的动画(尚未)受到限制或损坏,但我很欣赏有关 jQuery 由与 javascript 相同的引擎执行的信息。给我一个公平的警告,反正我的动画迟早会坏掉……
猜你喜欢
  • 1970-01-01
  • 2020-07-24
  • 2011-03-30
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
相关资源
最近更新 更多