Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2015, 20:01
Интересующийся
Отправить личное сообщение для Vyacheslav.Y Посмотреть профиль Найти все сообщения от Vyacheslav.Y
 
Регистрация: 01.11.2015
Сообщений: 23

Запуск функции через определенные интервалы времени
Добрый вечер. Подскажите как запускать функцию через 6с затем 10с, затем 2с, и 20с после загрузки страницы, а после прохождения этих интервалов начинать заново. Т.е. человек зашел на страницу через 6 секунд вылезло сообщение, повисело 8 секунд, убралось, затем вылезло снова на 8 секунд и убралось затем через 10 секунд и т.д. pop-up окно настроил, все работает, а вот с функцией вывода в это окно возникли трудности.
Песочница: http://jsfiddle.net/gS78J/49/
var userNames = ['Сергей', 'Алексей', 'Анна', 'Николай', 'Даниил', 'Вячеслав', 'Джордж', 'Наталья', 'Татьяна', 'Анастасия', 'Евгений', 'Евгения', 'Марина', 'Мария'],
        userCountry = ['Россия', 'Украина', 'Беларусь', 'Казахстан', 'Великобритания'],
        userFlag = ['http://uploads.webflow.com/565cb911c193e4557db200d9/565da100af373f6c6d3ff95e_lang-03.jpg'
    ,'http://www.ua.all.biz/img/ua/catalog/767310.jpeg'
    ,'http://www.belarus.by/relimages/000211_72754.jpg'
    ,'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Kazakhstan.svg/500px-Flag_of_Kazakhstan.svg.png'
    ,'http://uploads.webflow.com/565cb911c193e4557db200d9/565da11183428e142745e8e4_lang-05.jpg'],
 
         namerand = Math.floor(Math.random() * userNames.length),
         countryrand = Math.floor(Math.random() * (userCountry.length));
    console.log(namerand);
 
        $("span.country").text(userCountry[countryrand]);
        $("span.name").text(userNames[namerand]);
        document.getElementById("flag").style.backgroundImage = "url("+userFlag[countryrand]+")";

Последний раз редактировалось Vyacheslav.Y, 05.12.2015 в 00:12.
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2015, 20:47
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Vyacheslav.Y,
а по такому принципу не подойдет ?

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<script>
    $( document ).ready(function() {
       setTimeout(function () {
           alert('ok')
       },1000);
       setTimeout(function () {
           alert('ok1')
       },4000);
          setTimeout(function () {
           alert('ok2')
       },6000);

    });

</script>

</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 05.12.2015, 00:11
Интересующийся
Отправить личное сообщение для Vyacheslav.Y Посмотреть профиль Найти все сообщения от Vyacheslav.Y
 
Регистрация: 01.11.2015
Сообщений: 23

Mess4me,
Очень здорово. Можно ее зациклить? Смысл вот в чем: человек зашел на страницу через 6 секунд вылезло сообщение, повисело 9 секунд, убралось, затем вылезло снова на 9 секунд и убралось затем через 10 секунд и т.д. затем интервал 2 секунды, после 20 секунд и в конце концов все заново с шести, и так по кругу, получается нужно делать через бесконечный цикл? или есть другие более простые решения?
Ответить с цитированием
  #4 (permalink)  
Старый 05.12.2015, 15:31
Интересующийся
Отправить личное сообщение для Vyacheslav.Y Посмотреть профиль Найти все сообщения от Vyacheslav.Y
 
Регистрация: 01.11.2015
Сообщений: 23

http: //jsfiddle.net/gS78J/51/ готовое решение.
< !doctype html > <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
        <style>
            #flag {
                background-size: 20px 15px;
                display        : infine-block;
                height         : 15px;
                width          : 20px;
            }

        </style>
    </head>
    <body>
        <div>
            <span class="name">Sergey</span>,
            <span class="country">Russia</span>
            <div id="flag"></div>
        </div>
        <script>
            var userNames   = [
                    'Сергей',
                    'Алексей',
                    'Анна',
                    'Николай',
                    'Даниил',
                    'Вячеслав',
                    'Джордж',
                    'Наталья',
                    'Татьяна',
                    'Анастасия',
                    'Евгений',
                    'Евгения',
                    'Марина',
                    'Мария'
                ],
                userCountry = [
                    'Россия', 'Украина', 'Беларусь', 'Казахстан', 'Великобритания'
                ],
                userFlag    = [
                    'http://uploads.webflow.com/565cb911c193e4557db200d9/565da100af373f6c6d3ff95e_lan' +
                            'g-03.jpg',
                    'http://www.ua.all.biz/img/ua/catalog/767310.jpeg',
                    'http://www.belarus.by/relimages/000211_72754.jpg',
                    'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Kazakhstan.svg' +
                            '/500px-Flag_of_Kazakhstan.svg.png',
                    'http://uploads.webflow.com/565cb911c193e4557db200d9/565da11183428e142745e8e4_lan' +
                            'g-05.jpg'
                ],
                source      = [
                    6000, 10000, 2000, 20000
                ],
                receiver    = [];
            setTimeout(function recursiveFn() {
                var namerand    = Math.floor(Math.random() * userNames.length),
                    countryrand = Math.floor(Math.random() * (userCountry.length));
                console.log(namerand);
                $("span.country").text(userCountry[countryrand]);
                $("span.name").text(userNames[namerand]);
                document
                    .getElementById("flag")
                    .style
                    .backgroundImage = "url(" + userFlag[countryrand] + ")";
                if (!source.length) {
                    source          = receiver.slice();
                    receiver.length = 0;
                } else {
                    receiver.push(source.shift());
                }
                setTimeout(recursiveFn, source[0]);
            }, source[0]);
        </script>
    </body>
</html>

Последний раз редактировалось Vyacheslav.Y, 05.12.2015 в 19:34.
Ответить с цитированием
  #5 (permalink)  
Старый 05.12.2015, 15:32
Интересующийся
Отправить личное сообщение для Vyacheslav.Y Посмотреть профиль Найти все сообщения от Vyacheslav.Y
 
Регистрация: 01.11.2015
Сообщений: 23

del

Последний раз редактировалось Vyacheslav.Y, 05.12.2015 в 15:35. Причина: случайно отправил второй раз
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск функции после загрузки дива qwe88 Общие вопросы Javascript 18 01.09.2015 10:40
Запуск функции из дочерней страницы And5 jQuery 7 12.05.2014 18:06
Запуск скрипта через некоторое кол-во времени. qwermjk Общие вопросы Javascript 9 31.03.2013 06:15
Вызов функции печати страницы полученной через AJAX Garik AJAX и COMET 4 02.03.2011 17:05
Возврат результата функции через её параметр x-yuri Оффтопик 11 16.04.2010 11:52