Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2014, 14:55
Интересующийся
Отправить личное сообщение для Vladimir93 Посмотреть профиль Найти все сообщения от Vladimir93
 
Регистрация: 08.11.2014
Сообщений: 27

Динамическое изменение цветов div
Добрый день. Выкладываю код который показывает, какой шаблон должен быть( в данном конкретном примере). Скажу сразу в JS новичок.
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
<body>

    <script type="text/javascript">
        var params = {
            lines: [
                {
                    background: getRandomColor(),
                    updateTime: randomNumber(1, 1000),
                    elements: [{
                        background: getRandomColor(),
                        width: 25
                    },
                        {
                            background: getRandomColor(),
                            width: 25
                        },
                        {
                            background: getRandomColor(),
                            width: 25
                        }]
                },
                {
                    background: getRandomColor(),
                    updateTime: randomNumber(1,800),
                    elements: [{
                        background: getRandomColor(),
                        width: 15
                    },
                        {
                            background: getRandomColor(),
                            width: 15
                        },
                        {
                            background: getRandomColor(),
                            width: 15
                        }]
                },
                {
                    background: getRandomColor(),
                    updateTime: randomNumber(1,1200),
                    elements: [{
                        background: getRandomColor(),
                        width: 15
                    },
                        {
                            background: getRandomColor(),
                            width: 15
                        },
                        {
                            background: getRandomColor(),
                            width: 15
                        }]
                }]
        };

        /*global document: false*/
        function getRandomColor() {
            var letters = '0123456789ABCDEF'.split('');
            var color = '#';
            for (var i = 0; i < 6; i++ ) {
                color += letters[Math.floor(Math.random() * 16)];
            }
            return color;
        }

        function randomNumber (a, b){
            a = parseInt(a);
            b = parseInt(b);
            return Math.floor( Math.random()* (b - a + 1)) + a;

        }

        function changeColor (a){
            this.backgroundColor = getRandomColor();
            setTimeout('changeColor(a)', a)
        }
        var a = 100/params.lines.length;
        for (var i  = 0; i < params.lines.length; i++ ){
                 var d = document.createElement('div');
                 d.id = 'i';
                 d.style.width = 100 + '%';
                 d.style.height = a + '%';
                 d.style.backgroundColor = params.lines[i].background;
                 window.d.onload = changeColor(params.lines[i].updateTime);
            for (var j =0; j < params.lines[i].elements.length; j++){
                     var div1 = document.getElementById('i');
                     var div2 = document.createElement('div');
                     div2.style.backgroundColor = params.lines[i].elements[j].background;
                     div2.style.float = 'left';
                     div2.style.width = params.lines[i].elements[j].width + '%';
                     div2.style.height = a + '%';
                     div2.innerHTML;
                     document.body.appendChild(div2);

                 }
                 document.body.appendChild(d);


        }

    </script>
    <link rel="stylesheet" type="text/css" href="CSS.css">
</body>
</head>

</html>

То есть у нас есть JSON объект. В котормо задаными( в данном случае) три элемента(фон, апдэйттайм и подмассив Elements). То есть создаются три блока(линии) на всю высоту экрана и в эти линии вставляются подблоки с длиной width указанной в Elements. Если суммарное width не дошло до сотни, то линия(нижний див) продолжается.
Теперь сам вопрос: неполучается задать изменение фона "нижних div-ов" с интервалом upDateTime. То есть при загрузки страницы, все нижние дивы должны менять свой цвет,допустим, каждые пол секунды и так до бесконечности, пока не закрою страницу. Переделываю верхний код. страница вообще не грузится - белый экран.
function changeColor (a, id){
            document.getElementById(id).style.backgroundColor = getRandomColor();
            setInterval('changeColor(a, id)', a);
        }
        var a = 100/params.lines.length;
        for (var i  = 0; i < params.lines.length; i++ ){
                 var d = document.createElement('div');
                 d.id = 'i';
                 d.style.width = 100 + '%';
                 d.style.height = a + '%';
                 d.style.backgroundColor = params.lines[i].background;
                 d.onload = changeColor(params.lines[i].updateTime, 'i');
            for (var j =0; j < params.lines[i].elements.length; j++){
                     var div1 = document.getElementById('i');
                     var div2 = document.createElement('div');
                     div2.style.backgroundColor = params.lines[i].elements[j].background;
                     div2.style.float = 'left';
                     div2.style.width = params.lines[i].elements[j].width + '%';
                     div2.style.height = a + '%';
                     div2.innerHTML;
                     document.body.appendChild(div2);

                 }
                 document.body.appendChild(d);
        }
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание матрицы div и присвоением значений элементам sonntagausgang Общие вопросы Javascript 5 07.12.2013 07:51
Динамическое изменение... allanmiln Элементы интерфейса 4 27.03.2013 22:48
Изменение CCS-свойства DIV по прошествии времени Pug-dog&Elephant Events/DOM/Window 1 31.05.2011 08:10
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17
Динамическое изменение размеров изображения Макс Элементы интерфейса 7 21.07.2008 16:55