Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Появление сообщения после окончания акции (https://javascript.ru/forum/dom-window/56215-poyavlenie-soobshheniya-posle-okonchaniya-akcii.html)

kos0760 04.06.2015 22:33

Появление сообщения после окончания акции
 
Здравствуйте! Помогите, если кто знает.

Есть акция со счетчиком обратного отсчета (скрипт счетчика взят со стороннего сайта). Под ним форма заказа обратного звонка. Код счетчика и формы находится в каком-то диве.

Как сделать так, чтобы когда на счетчике устанавливаются нули, весь этот див менялся на другой див с сообщением, к примеру "Акция завершена!". Т.е нужно этим сообщением скрыть и счетчик и форму.

Да и еще, если для конкретного пользователя закончилась акция, то при каждом след. посещении сайта он видел "Акция завершена!"

Спасибо!

Leon-on12 04.06.2015 23:30

Ты бы написал бы часть кода. А тож совсем непонятно что и как.
Ну ладно.
<div id="akciay">
	<div id="aktivna"></div>
	<div id='zakonchena'>Акция закончена</div>
</div>

#akciay{
	width: 100px;
	height: 100px;
}
#zakonchena{
	display: none;
}
#aktivna{
	display: block;
}

function checkAkciya(){
	if (schetchik == 0){
		document.getElementById('aktivna').style.display = 'none';
		document.getElementById('zakonchena').style.display = 'block';
	}
}

kos0760 05.06.2015 00:04

Прошу прощения! Действительно не очень понятно для других.

Код счетчика я формировал на сайте megatimer.ru
В результате чего получил скрипт:
<script src="http://megatimer.ru/s/f7ba7428062d9563bf6c7aeaea28b7b6.js"></script>


Есть один див:
<div id="begin">
<script src="http://megatimer.ru/s/f7ba7428062d9563bf6c7aeaea28b7b6.js"></script>
<!--Ниже сама форма-->
<form action="new_zacaz.php" method="post">
бла-бла-бла
 </form>
</div>


Второй див:
<div id="end">
<span class="">Акция завершена!</span>
</div>


В скрипте настроено время, допустим 3 часа до конца акции с момента первого посещения пользователем сайта. После этого скрипт показывает нули. Вот я и хочу, чтобы этих нулей при след. посещении сайта тем же пользователем (к примеру на след день), перед его глазами не было, т.е. скрыть счетчик и форму и вместо нее через три часа подсунуть див с надписью "Акция завершена!". Вот как-то так.

Sigizmund2012 05.06.2015 08:26

kos0760,
Этот мегатаймер похоже не генерирует события по окончании отсчёта, документации по нему нет. Поэтому для ваших нужд он не подходит, вам нужен таймер генерирующий событие, чтобы можно было на него обработчик повесить. В обработчике можно и пользователю в cookies прописать(как вариант), что акция закончилась.

kos0760 05.06.2015 11:29

Цитата:

Сообщение от Sigizmund2012 (Сообщение 373887)
kos0760,
Этот мегатаймер похоже не генерирует события по окончании отсчёта, документации по нему нет.

Спасибо за подсказку, но я в курсе, что он только отсчитывает время и больше ничего. Вы не обращайте на него вообще внимания. Попробую еще раз объяснить, что мне нужно. Мне нужна смена блоков спустя некоторое время, т.е. блок содержащий счетчик должен смениться блоком с надписью "Акция завершена!".

Это аналогично смене изображений в слайдшоу. Только здесь вместо картинок - дивы.

Меня почти понял Leon-on12. Он написал скрипт, но без учета времени. Т.е., если брать в пример код, что я привел выше, сначала диву "begin" должно быть присвоено значение display:block, а диву "end" display:none. Затем, допустим, через 5 мин наоборот, див "begin" должен иметь значение display:none, а див "end" display:block.

Rise 05.06.2015 13:01

kos0760,
Цитата:

Вы не обращайте на него вообще внимания.
:blink: как не обращать, от "события по окончании отсчёта" и зависит "смена блоков", это вы чего то не понимаете. Чтобы это событие появилось нужно править timer.min.js вряд ли такое вам под силу, так что ищите другой таймер с таким событием.

kos0760 05.06.2015 13:51

Похоже я не правильно объясняю. Ну да ладно. Спрошу по-другому.

Вот простой код:

<div id="akciya">
   <div id="begin">
       Начало акции.
   </div>
   <div id="end">
       Акция завершена!
   </div>
</div>


Можно ли сделать и как, чтобы один раз через 10 сек фраза "Начало акции" сменялась на "Акция завершена!".

Rise 05.06.2015 14:10

kos0760,
<div id="akciya">
   <div id="begin">
       Начало акции.
   </div>
   <div id="end" style="display:none;">
       Акция завершена!
   </div>
</div>
<script>
setTimeout(function(){begin.style.display='none',end.style.display='block'},10000);
</script>

kos0760 05.06.2015 15:44

Цитата:

Сообщение от Rise (Сообщение 373914)
kos0760,
<div id="akciya">
   <div id="begin">
       Начало акции.
   </div>
   <div id="end" style="display:none;">
       Акция завершена!
   </div>
</div>
<script>
setTimeout(function(){begin.style.display='none',end.style.display='block'},10000);
</script>

Скажите как сделать, чтобы при обновлении страницы браузера фраза "Акция завершена" не менялась обратно на "Начало акции".


Часовой пояс GMT +3, время: 09:51.