22.10.2016, 21:40
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Сообщение от рони
|
Poznakomlus,
ок. но но зачем усложнять
|
Потому что он может.)
Тс хотел for - он получил for.)
__________________
29375, 35
|
|
22.10.2016, 22:30
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Aetae,
как я понимаю решение совмещения for и setTimeout
<div style="width:300px; height:300px; background-color:red;" id="col"></div>
<script type="text/javascript">
var color = ["green", "blue", "red", "orange"];
var el = document.getElementById('col');
var max = color.length-1;
for(var i=0; i<=max; i++) {
(function(i){
setTimeout(function(){
el.style.background = color[i];
}, 1000*i);
})(i);
}
</script>
|
|
22.10.2016, 23:17
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
рони, жесть.))
__________________
29375, 35
|
|
23.10.2016, 20:22
|
Новичок на форуме
|
|
Регистрация: 22.10.2016
Сообщений: 9
|
|
Спасибо Всем, кто ответил, все прочитал и принял к сведению. Я только несколько дней как взялся изучать JavaScript, поэтому извините за нелепый вопрос.
|
|
24.10.2016, 00:44
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
vlad35, тогда тебе только этот вариант. На остальные не смотри, это просто извращенные развлечения.)
__________________
29375, 35
|
|
24.10.2016, 05:26
|
|
Профессор
|
|
Регистрация: 07.03.2011
Сообщений: 1,138
|
|
Сообщение от Aetae
|
vlad35, тогда тебе только этот вариант. На остальные не смотри, это просто извращенные развлечения.)
|
имхо: Тот вариант это рекурсия с созданием замыкания при этом еще долго живущая т.к. ссылка на функцию живет в SetInterval. Интерпретатору приходится каждый раз на вызов создавать контекст(окружение) для исполнения таких функций что просто ужасно для производительности. Тут как раз и нужно использовать чуть ли не единственную полезную фичу из ES6 стрелочные функции которые исполняются в текущем контексте.
что то вроде
<div style="width:300px; height:300px" id="col"></div>
<script>
var color = [];
var el = document.querySelector('#col');
var f=()=> (el.style.background = color.shift()) && setTimeout(f,100);
+function(){ // заполняет массив цветов
var i=0,R=G=0,B=15,t=P=>P.toString(16),P=()=>color.push("#"+t(R)+t(G)+t(B));
while(i<16)P(R=i++);while(i>0)P(B=i--);while(i<16)P(G=i++);
while(i>0)P(R=i--);while(i<16)P(B=i++);while(i>0)P(G=i--);}();f()
</script>
|
|
24.10.2016, 10:06
|
Новичок на форуме
|
|
Регистрация: 22.10.2016
Сообщений: 9
|
|
Спасибо всем за участие, очень помогли! Я пока новичок в JavaScript, поэтому вопросы могут быть глупыми, извините!
|
|
24.10.2016, 11:38
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Сообщение от Aetae
|
vlad35, тогда тебе только этот вариант
|
shift удаляет элемент с индексом 0 и сдвигает остальные элементы на один вниз
не совсем красиво то для данной задачи
|
|
24.10.2016, 14:41
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Poznakomlus, все остальные варианты тут гораздо более неадекватные, а самому писать было лень.) Тот то хоть представление даёт, и адаптировать можно к любой подобной задаче.
__________________
29375, 35
|
|
|
|