我想做一点加载......'我的网站的小部件,使用javascript。
var percent=0;
var message="Loading... "
var per="%"
function count(){
percent=percent+1;
if(percent==100){
alert("Loading end.")
}else{
setTimeout("count",50)
document.write(message)
document.write(percent)
document.write(per)
}
但它没有运行。我想我有一些错误(或者可能是完全错误的)。我怎样才能做到这一点?我想每50ms更新一次显示的消息。
答案 0 :(得分:0)
尝试
的setInterval(计数,50);
而不是setTimeOut(“count”,50)
答案 1 :(得分:0)
你想设置一个每隔x毫秒运行一次的间隔,传入一个匿名函数来调用函数来调用
var percent=0;
var message="Loading... "
var per="%"
function count(){
percent=percent+1;
if(percent==100){
alert("Loading end.")
}else{
setInterval(function() { count() },50)
document.write(message)
document.write(percent)
document.write(per)
}
} <--- you were also missing this ending brace
答案 2 :(得分:0)
脚本:
var percent = 0;
var message = "Loading... ";
var per = "%";
$(document).ready(function () {
count();
});
function count() {
percent = percent + 1;
if (percent == 100) {
alert("Loading end.");
} else {
setTimeout(function () {
count();
}, 50);
document.write(message);
document.write(percent);
document.write(per);
}
}
看到这个小提琴更多http://jsfiddle.net/8nhmU/19/
答案 3 :(得分:0)
请参阅此jsfiddle
HTML:
<span id="loading"></span>
使用Javascript:
var percent = 0;
var message = "Loading...";
var per = "%";
var element = document.getElementById('loading');
var interval = setInterval(function() {
element.innerHTML = message + percent + per;
percent += 1;
if(percent > 100) {
clearInterval(interval)
};
}, 50)
答案 4 :(得分:0)
您的示例中的代码缺少大量的分号和结尾的花括号,但这不是最终问题。
调用setTimeout
时出现的“问题”是第一个参数必须是实际函数,而不是字符串。如果您删除了呼叫周围的引号,它将起作用。
以下是您的代码的副本,重新格式化:
var percent=0;
var message="Loading... ";
var per="%";
function count() {
percent++;
if (percent == 100) {
alert("Loading end.");
} else {
setTimeout(count, 50);
document.write(message);
document.write(percent);
document.write(per);
}
}
答案 5 :(得分:0)
你做错了。您应该在窗口加载时调用setInterval方法。加载完成后,您应该通过使用其ID清除间隔来停止间隔。
var countId;
window.onload = function(){
countId=setInterval(count,50);
}
function count(){
if(per=99){
clearInterval(countId);
}
per++;
//show your message
}
答案 6 :(得分:0)
尝试使用间隔并在完成进度后将其清除:
<!DOCTYPE html>
<html>
<head>
<title>testing</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div id="progress">MSG</div>
<script type="text/javascript">
var percent = 0;
var message = "Loading... ";
var per = "%";
var dom = document.getElementById('progress');
var iv = setInterval(function(){
console.log(message);
dom.innerHTML = ((percent++) + per +' '+ message);
if(percent === 100){
console.log("Loading end.");
clearInterval(iv);
return false;
}
}, 50);
</script>
</body>
</html>