powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Запуск двух и более таймеров на сате. Решение.
22 сообщений из 22, страница 1 из 1
Запуск двух и более таймеров на сате. Решение.
    #39005702
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только значит я решил-таки допилить предложенный скрипт, как топик закрыли :)

Выкладываю тут:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
<!DOCTYPE html>
<html>
<head>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jquery-countdown/2.0.1/jquery.countdown.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-countdown/2.0.1/jquery.plugin.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-countdown/2.0.1/jquery.countdown.min.js"></script>
    <style>
        .countdown {
            float: left;
            width: 240px;
        }
    </style>
    <script>
        $(document).ready(function () {
            initialize();

            $('button.start-countdown').click(function () {
                var sender = $(this),
                    countdown = $(sender.data('target')),
                    countdownDuration,
                    countdownId = countdown.attr('id'),
                    nowTime = new Date().getTime(), until, untilTime = null;

                if (localStorage.getItem(countdownId) != null) {
                    untilTime = localStorage.getItem(countdownId);
                }

                countdownDuration = countdown.data('seconds') * 1000;
                countdownDuration += countdown.data('minutes') * 60 * 1000;
                countdownDuration += countdown.data('hours') * 3600 * 1000;

                if (untilTime && untilTime <= nowTime) {
                    untilTime = nowTime + countdownDuration;
                }

                if (untilTime == null) {
                    untilTime = nowTime + countdownDuration;
                }

                localStorage.setItem(countdownId, untilTime);

                until = new Date();
                until.setTime(untilTime);

                countdown.countdown({ until: until });

                window.open(countdown.data('url'), '_blank');
            });
        });

        function initialize() {
            $('.countdown').each(function () {
                var countdown = $(this),
                    countdownId = countdown.attr('id'),
                    nowTime = new Date().getTime(), until, untilTime = null;

                if (localStorage.getItem(countdownId)) {
                    untilTime = localStorage.getItem(countdownId);
                }

                if (untilTime && (isNaN(untilTime) || untilTime <= nowTime)) {
                    return;
                }

                if (untilTime) {
                    until = new Date();
                    until.setTime(untilTime);

                    countdown.countdown({ until: until });
                }
            });
        }
    </script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="8">
    <tr>
        <td>
            <span class="countdown" data-hours="2" data-minutes="30" data-seconds="10" data-url="https://mail.ru" id="mail"></span>
            &nbsp;
            <button class="start-countdown" data-target="#mail" type="button">Старт</button>
        </td>
    </tr>
    <tr>
        <td>
            <span class="countdown" data-hours="2" data-minutes="30" data-seconds="10" data-url="http://ya.ru" id="ya"></span>
            &nbsp;
            <button class="start-countdown" data-target="#ya" type="button">Старт</button>
        </td>
    </tr>
    <tr>
        <td>
            <span class="countdown" data-hours="2" data-minutes="30" data-seconds="10" data-url="http://rambler.ru" id="rambler"></span>
            &nbsp;
            <button class="start-countdown" data-target="#rambler" type="button">Старт</button>
        </td>
    </tr>
    <tr>
        <td><button onclick="localStorage.clear()">Почистить localStorage</button></td>
    </tr>
</table>
</body>
</html>



Ссылка на песочницу: http://plnkr.co/edit/zSPD0ok6PDLNutyTMAn8?p=preview
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005707
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Домашнее задание: избавиться от дублирования кода :)
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005895
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, попробуйте поставить один из них на 10 секунд а когда время закончится ещё раз запустить.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005925
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, попробуйте поставить один из них на 10 секунд а когда время закончится ещё раз запустить.
Могли бы уже прочитать документацию по jQuery countdown и догадаться, что нужен destroy :)

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
<!DOCTYPE html>
<html>
<head>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jquery-countdown/2.0.1/jquery.countdown.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-countdown/2.0.1/jquery.plugin.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-countdown/2.0.1/jquery.countdown.min.js"></script>
    <style>
        .countdown {
            float: left;
            width: 240px;
        }
    </style>
    <script>
        $(document).ready(function () {
            initialize();

            $('button.start-countdown').click(function () {
                var sender = $(this),
                    countdown = $(sender.data('target')),
                    countdownDuration,
                    countdownId = countdown.attr('id'),
                    nowTime = new Date().getTime(), until, untilTime = null;

                if (localStorage.getItem(countdownId)) {
                    untilTime = localStorage.getItem(countdownId);
                }

                countdownDuration = countdown.data('seconds') * 1000;
                countdownDuration += countdown.data('minutes') * 60 * 1000;
                countdownDuration += countdown.data('hours') * 3600 * 1000;
                
                if (untilTime && (isNaN(untilTime) || untilTime <= nowTime)) {
                    countdown.countdown('destroy');
                    untilTime = null;
                }

                if (untilTime == null) {
                    untilTime = nowTime + countdownDuration;

                    localStorage.setItem(countdownId, untilTime);

                    until = new Date();
                    until.setTime(untilTime);

                    countdown.countdown({ until: until });
                }

                window.open(countdown.data('url'), '_blank');
            });
        });

        function initialize() {
            $('.countdown').each(function () {
                var countdown = $(this),
                    countdownId = countdown.attr('id'),
                    nowTime = new Date().getTime(), until, untilTime = null;

                if (localStorage.getItem(countdownId)) {
                    untilTime = localStorage.getItem(countdownId);
                }

                if (untilTime && (isNaN(untilTime) || untilTime <= nowTime)) {
                    return;
                }

                if (untilTime) {
                    until = new Date();
                    until.setTime(untilTime);

                    countdown.countdown({ until: until });
                }
            });
        }
    </script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="8">
    <tr>
        <td>
            <span class="countdown" data-hours="0" data-minutes="0" data-seconds="10" data-url="https://mail.ru" id="mail"></span>
            &nbsp;
            <button class="start-countdown" data-target="#mail" type="button">Старт</button>
        </td>
    </tr>
    <tr>
        <td>
            <span class="countdown" data-hours="2" data-minutes="30" data-seconds="10" data-url="http://ya.ru" id="ya"></span>
            &nbsp;
            <button class="start-countdown" data-target="#ya" type="button">Старт</button>
        </td>
    </tr>
    <tr>
        <td>
            <span class="countdown" data-hours="2" data-minutes="30" data-seconds="10" data-url="http://rambler.ru" id="rambler"></span>
            &nbsp;
            <button class="start-countdown" data-target="#rambler" type="button">Старт</button>
        </td>
    </tr>
    <tr>
        <td><button onclick="localStorage.clear()">Почистить localStorage</button></td>
    </tr>
</table>
</body>
</html>


Ссылка на песочницу: http://plnkr.co/edit/G56XlSj5cf6DFvYXrZkj?p=preview
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005946
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, спасибо большое Вам за помощь. Подскажите тогда пожалуйста есть ли возможность вставить обычные цифры без подписей часы, минуты, секунды. Хотя бы так (СТАРТ 00:00:00) и по истечению времени чтобы так же и оставалось. Вы мне подскажите где поменять я сам постараюсь сделать.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005977
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTz, почитайте уже документацию: http://keith-wood.name/countdown.html

Закладка Formats 1 , пример Compact versio n, нажать Show code .
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005979
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, спасибо большое за помощь буду разбираться.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005990
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, последний вопрос. Могу ли я создать папку допустим CSS поместить в неё часть кода таймера кроме части которая отвечает за запуск и поместить в корень сайта а от неё прописать путь и вставить на страницу. Для того чтобы мне весь код не оставлять на странице. Если возможно то выделите пожалуйста код который мне можно скрыть в файле css или js. И больше мне ничего не нужно.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005997
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTz, можете.

Весь текст между тегами <style> и </style> в css, а между тегами <script> и </script> в js.
Тогда уж Вы их ещё и минимизируйте, а то их всё равно можно будет посмотреть при жедании :)
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39005999
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, вот теперь всё) Ещё раз спасибо за помощь где Вы были неделю назад.)
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006010
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTz, неделю назад Вам надо было потратить час времени, чтобы чётко расписать, чего Вы хотите.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006043
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, что поделать.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006064
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, что поделать.
За пивом ему беги!
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006514
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, доброе утро. Сделал как Вы написали. Создал отдельные файлы залил в корень сайта прописал пути к ним но таймер так и не запустился. Что я не так сделал?
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006526
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, доброе утро. Сделал как Вы написали. Создал отдельные файлы залил в корень сайта прописал пути к ним но таймер так и не запустился. Что я не так сделал?не научился пользоваться головой и отладчиком (F12).
именно отладчик говорит конкретно, что сделано не так, а не посторонний человек хер знает откуда из интернета, в глаза не видевший твоего сайта.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006568
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzтаймер так и не запустился
Значит skyANA опять без пива...
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006662
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsazFARTzтаймер так и не запустился
Значит skyANA опять без пива... Вчера после работы зашли с женой поужинать в Temple Bar, и там знакомый ирландец, которого подруга один раз притащила на шашлыки (где собственно и познакомились), с ходу угостил меня пинтой светлого.

Какой отсюда вывод? :)
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006684
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКакой отсюда вывод? :)
Заграница нам поможет! (с)
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006689
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, доброе утро. Сделал как Вы написали. Создал отдельные файлы залил в корень сайта прописал пути к ним но таймер так и не запустился. Что я не так сделал? Не буду портить себе карму :)

Ловите:
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39006708
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, вот за это я Вас уважаю! Благодарю за бескорыстную помощь.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате. Решение.
    #39134021
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAkrvsaпропущено...

Значит skyANA опять без пива... Вчера после работы зашли с женой поужинать в Temple Bar, и там знакомый ирландец, которого подруга один раз притащила на шашлыки (где собственно и познакомились), с ходу угостил меня пинтой светлого.

Какой отсюда вывод? :)
Ты в Дублине был?!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Запуск двух и более таймеров на сате. Решение.
    #39483889
Kajros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый, skyANA! Подскажите пожалуйста, как сделать, что бы в Вашем великолепном таймере, кнопка "Старт" блокировалась после начала отсчёта времени, а после того, как время вышло, кнопка снова становилась активной и выполнялось какое-нибудь действие, например проигрывался аудио файл или появлялась бы какая-нибудь картинка.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Запуск двух и более таймеров на сате. Решение.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]