Помогите настроить задержку скрипта

Apppxu

Постоялец
Регистрация
2 Апр 2013
Сообщения
84
Реакции
6
Сам код выводит всплывающее окно. Как мне сделать чтобы это окно выезжало через 10 сек, через 10 сек заезжало обратно и спустя 180 сек выезжало снова на 10 сек и больше не выезжало пользователю этой сессии
Код:
<style>
.ras1,.ras3{
cursor: pointer;
}
.ras_show{
display:none;
}
media media screen and (max-width: 767px) {
.ras1,.ras3{
display:none!important;
}
.ras_show{
display:inline;
bottom: -5px;
z-index: 9999999;
color: white;
position: fixed;
}
}
</style>

<?php if(!$raccrochka || (isset($_SERVER["HTTP_REFERER"]) && $_SERVER['HTTP_REFERER'] != "http://belarussian-dveri.ru/raccrochka.html") && !isset($_COOKIE['exit1'])){?>
<div onclick='document.location.href ="raccrochka";'
class="rassrochka_img ras1" id="rassrochka_img" style="top:182px;left:-500px;">
<img src="/image/rassrochka2.png">
<img src="/image/exit.png" id="exit" onclick='var date = new Date; date.setDate(date.getDate() + 1); document.cookie = "exit1=10";'>

</div>

<script>
setTimeout(function(){
$(".ras1").css('left','0px');
setTimeout(function(){
$(".ras1").css('left','-200px');
$(".ras1 img").remove();
$(".ras1").css('left','-16px');
$(".ras1").append('<img src="/image/rassrochka3.png" width="70px">');
}, 3000);
}, 30000);

</script>

<?php } else if(!$raccrochka) { ?>
<div onclick='document.location.href ="raccrochka";'
class="rassrochka_img ras3" id="rassrochka_img" style="top:14%;left:52px;color:white;">
<img src="/image/rassrochka3.png" width="70px" >

</div>
<?php } ?>
 
Как мне сделать чтобы это окно выезжало через 10 сек, через 10 сек заезжало обратно и спустя 180 сек выезжало снова на 10 сек и больше не выезжало пользователю этой сессии
Возможно, вот так:
HTML:
var intervals = [10000, 10000, 180000, 10000]; // через какие промежутки запускать

var leftPosition = -200; // позиция

function runByPeriod(){
  leftPosition = leftPosition ? 0 : -200; // переключатель 0/-200
  $(".ras1").css('left',leftPosition); // чё-то делаем
  if(intervals.length !== 0){ // если массив не пустой
    setTimeout(runByPeriod, intervals.shift()); // рекурсивный запуск со сдвигом массива
} else { // иначе
    sessionStorage.setItem('stop_popup', '1'); // пишем в хранилище сессии значение
}
}
  if(sessionStorage.getItem('stop_popup') != '1'){ // если в хранилище сессии значения нет
    setTimeout(runByPeriod, intervals.shift()); // первый запуск
  }
 
Код:
var tl = new TimelineLite();
var popup = '.MyCrazyPopupWindow';

tl.to(popup, 0.5, {left: 0}, "+=10.0");
tl.to(popup, 0.5, {left: -500px}, "+=10.0");
tl.to(popup, 0.5, {left: 0}, "+=180.0");
tl.to(popup, 0.5, {left: -500px}, "+=10.0");

tl.play();

play нужно само собой привязать к какому-нибудь событию - кнопке или загрузке документа.

Для просмотра ссылки Войди или Зарегистрируйся
 
Возможно, вот так:
HTML:
var intervals = [10000, 10000, 180000, 10000]; // через какие промежутки запускать

var leftPosition = -200; // позиция

function runByPeriod(){
  leftPosition = leftPosition ? 0 : -200; // переключатель 0/-200
  $(".ras1").css('left',leftPosition); // чё-то делаем
  if(intervals.length !== 0){ // если массив не пустой
    setTimeout(runByPeriod, intervals.shift()); // рекурсивный запуск со сдвигом массива
} else { // иначе
    sessionStorage.setItem('stop_popup', '1'); // пишем в хранилище сессии значение
}
}
  if(sessionStorage.getItem('stop_popup') != '1'){ // если в хранилище сессии значения нет
    setTimeout(runByPeriod, intervals.shift()); // первый запуск
  }
Подскажите еще пожалуйста как правильно и куда это вставить.
 
Подскажите еще пожалуйста как правильно и куда это вставить.
Это же ведь Opencart? Обычно есть js-файл темы, куда пишут разные инициализации плагинов, собственную js-логику и т.д. Лучше код добавить в секцию калбека для ивента ready или в анонимную функцию, а в остальном принципиальной разницы нет.
 
Это же ведь Opencart? Обычно есть js-файл темы, куда пишут разные инициализации плагинов, собственную js-логику и т.д. Лучше код добавить в секцию калбека для ивента ready или в анонимную функцию, а в остальном принципиальной разницы нет.
Да, опенкарт. Добавил в коммон.js - не работает. Я не силен в яве и программировании и пока до конца не могу понять как правильнее это сделать, сам алгоритм дейсвия скрипта мне не понятен до конца.. Если не трудно ткните меня носом в нужное место
 
Добавил в коммон.js - не работает.

Попробуй поместить это в document ready:

Код:
$(function() {

   // здесь твой код, который запустится после загрузки страницы.

});

См. также в js-консоль браузера. Если в коде ошибка, увидишь какая именно
 
Если посмотреть по теории вас интересует функция setTimeout. Почитайте мануалы по использованию их миллион. А если конкретно куда, в ваш пример вставляете код со второго поста мистера Absolute c небольшими поправками и вуаля.
 
Еще, чтобы просто быстро проверить код, можно вставлять его просто в адресную строку браузера вместо ссылки в таком виде:

Код:
javascript:(function(){ ...твой код... })();
Это называется Bookmarklet. Можешь даже в закладки добавить, чтобы быстро проверть всякие cookies и т.д.
 
Назад
Сверху