progress bar идеи по оптимизации
Сделал progress bar , может есть идеи как сделать проще ? а то что то 2 цикла не очень нравиться ((
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<meta charset="utf-8">
<style>
</style>
</head>
<body>
<canvas id="canvas" width="100" height="100"></canvas>
</body>
<script>
var canvas = document.getElementById('canvas'),
ctx = canvas.getContext('2d');
function bar (mas){
var el = mas[mas.length-1];
for(var i = mas.length-2; i >= 0; i--) mas[i+1] = mas[i];
mas[0] = el;
for(var i = 0; i < mas.length; i++) {
ctx.fillStyle = mas[i];
ctx.fillRect(i * 20, 50, 10, 10);
}
setTimeout(function(){bar(mas)}, 100)
}
bar(['#B8B8B8', '#A8A8A8', '#989898', '#888888', '#787878'])
</script>
</body>
</html>
|
caetus,
строка 16 заменяет ваш 1 цикл , остальное просто для примера.
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<meta charset="utf-8">
<style>
</style>
</head>
<body>
<canvas id="canvas" width="100" height="100"></canvas>
<script>
var canvas = document.getElementById('canvas'),
ctx = canvas.getContext('2d');
function bar (mas){
function draw() {
mas.unshift(mas.pop());
for (var i = 0; i < mas.length; i++){
ctx.lineWidth = 10;
ctx.strokeStyle = mas[i] ;
ctx.beginPath();
ctx.moveTo(5+i*20,10);
ctx.lineTo(5+i*20,20);
ctx.stroke();
}
setTimeout(draw, 100)
}
draw()
}
bar(['#B8B8B8', '#A8A8A8', '#989898', '#888888', '#787878'])
</script>
</body>
</html>
|
caetus,
посоветуй учебник по canvas. Спс. |
для canvas хватит справочника , ну для общего развития могу посоветовать Графика на JavaScript — Рафаэлло Чекко (создания игр canvas)
|
Рони спасибо за помощь , еще интересует один вопрос! выбран ли правильный путь решения задачи ?
P.S программированием занимаюсь в свободно время (работаю по другой специальности ) вот и очень часто возникают вопросы в правильности решения задач ((( |
caetus,
эту задачу лучше сделать на css http://www.paulund.co.uk/playground/...ading-spinner/ http://blog.pexels.com/css-only-loaders/ |
| Часовой пояс GMT +3, время: 08:54. |