HTML:
<div id="container">
<div id="bar">
</div>
</div>
CSS:
#container {
width: 20px;
height: 150px;
position: relative;
}
#bar {
width: 100%;
height: 100%;
background-color: red;
position: absolute;
bottom: 0px;
}
JS:
function Bar(element) {
this.barEl = element;
this.progress = 100;
}
Bar.prototype.setProgress = function (p) {
if(p >= 0) {
this.progress = p;
this.barEl.style.height = this.progress + "%";
}
}
var barObj = new Bar(document.getElementById('bar'));
setInterval(function () {
barObj.setProgress(barObj.progress - 10);
}, 1000);
Этот код из jsfiddle http://jsfiddle.net/Mp7R3/ не работает, когда я копирую вставку кода, но он отлично работает на jsfiddle. Возможно, у меня есть проблема с onLoad, но я не знаю, как ее решить. Я пробовал $ (document).ready(function(), но это не помогло.
Убедитесь, что вы не забыли скрипт для вызова jQuery в <head>
вашего кода:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
Вы также можете попытаться поместить код в нижней части кода, чтобы он мог запускаться только в том случае, если загружена полная страница.
Я также пишу ниже простейшую страницу, чтобы заставить этот код работать (как правило, вы должны отделять HTML, CSS и JS), поэтому вы можете сравнить его со своим:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<title>- That Work!!! -</title>
<style>
#container {
width: 20px;
height: 150px;
position: relative;
}
#bar {
width: 100%;
height: 100%;
background-color: red;
position: absolute;
bottom: 0px;
}
</style>
</head>
<body>
<div id="container">
<div id="bar">
</div>
</div>
</body>
<script type="text/javascript">
function Bar(element) {
this.barEl = element;
this.progress = 100;
}
Bar.prototype.setProgress = function (p) {
if(p >= 0) {
this.progress = p;
this.barEl.style.height = this.progress + "%";
}
}
var barObj = new Bar(document.getElementById('bar'));
setInterval(function () {
barObj.setProgress(barObj.progress - 10);
}, 1000);
</script>
</html>
Надеюсь, это поможет вам!
$(document).ready(function()
то это не сработает, поскольку в этой строке отсутствует окончательное закрытие)
. И вы уверены, что включили правильные теги HTML для своего HTML? Например,<html>
,<body>
и т. Д.