gpt4 book ai didi

javascript - 如何使用 JavaScript 控制进度元素进行加载可视化?

转载 作者:行者123 更新时间:2023-11-28 05:03:21 25 4
gpt4 key购买 nike

我需要帮助将加载程序添加到我的 HTML 文档中。这是没有加载器的页面:

<!DOCTYPE html>
<html>
<head>
<title>Webpage</title>
</head>
<body bgcolor="#FFFFFF">
<script>
/*

Script goes here for the loader.
I think I might have an idea, I could use the "load" event.

*/
</script>
<style>

h1 {
color: green;
font: 24px Courier;
}

.css-format-class {
color: red;
font: 16px Arial;
}

</style>
<center>
<h1>My Simple Webpage</h1>
</center>
<br>
<p class="css-format-class">I wish I could add a loader GIF onto this page...</p>
<!--I need a loader somewhere in this webpage...-->
<!--If you know the solution, please feel free to comment.-->
</body>
</html>

我在 HTML5 中找到了这段代码,但不知道如何让 JavaScript 操作这个标签:

<progress id="loader" value="0" max="100"></progress>

如果你知道怎么做,请告诉我。

最佳答案

获取 progress element 的引用(例如使用 document.getElementById() ),然后更新 value 属性,该属性映射到同名的属性。请参阅下面的演示片段,其中 setInterval()用于每秒调用一个函数来更新值。

下面的代码通过添加事件监听器(使用 document.addEventListener() )等待 DOM 准备就绪,以便在事件 DOMContentLoaded 发生时添加回调发生。这样它就不会在准备好之前尝试访问 DOM 中的元素(例如进度元素)。

var progress, date, interval;
// wait until DOM has been loaded to perform DOM Manipulations
document.addEventListener('DOMContentLoaded', function() {
date = Date.now(); //current timestamp since UNIX epoch

//get a reference to the progress element using its id attribute
progress = document.getElementById('loader');
interval = setInterval(updateProgress, 1000);
});
function updateProgress() {
msg.innerHTML = 'begin updateProgress() - progress.value = '+progress.value + "<br>" + msg.innerHTML;
if (progress.value >= 100) {
//stop running this function after value reaches 100 (percent)
clearInterval(interval);
}
var newDate = Date.now();
var milliseconds = newDate - date;

var seconds = Math.floor(milliseconds / 1000);
loader.value += seconds;
}
<progress id="loader" value="15" max="100"></progress>
<div id="msg" style="max-height:100px;overflow-y: auto"></div>

关于javascript - 如何使用 JavaScript 控制进度元素进行加载可视化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41967578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com