отложенная модалка на джсе
var delay_sec = 10 * 60; // 10 min function init_delayed_modal() { var first_visit_time = get_cookie('first_visit_time'); var current_time = new Date().getTime() / 1000; var time_passed; if(first_visit_time == undefined) { // first time visit create_cookie('first_visit_time', current_time); setTimeout(show_modal,delay_sec * 1000); } else { // two and more time visit time_passed = current_time - first_visit_time; //if time left if(time_passed>delay_sec) show_modal(); else setTimeout(show_modal,(delay_sec - time_passed) * 1000); } } function show_modal() { // set cookie and show modal create_cookie('modal_alredy_show', true); alert('modal'); } //https://stackoverflow.com/questions/1458724/how-do-i-set-unset-a-cookie-with-jquery function get_cookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\/\+^])/g, '\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } //https://stackoverflow.com/questions/1458724/how-do-i-set-unset-a-cookie-with-jquery function create_cookie(name, value, days) { var expires; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } else expires = ""; document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/"; } if(get_cookie('modal_alredy_show') == undefined) init_delayed_modal();
допустим нам необходимо однократно показать юзеру сообщение спустя 10 минут нахождения на сайте. чистый джс
0 коментарів
Recommended Comments
Немає коментарів для відображення
Створіть аккаунт або увійдіть для коментування
Ви повинні бути користувачем, щоб залишити коментар
Створити обліковий запис
Зареєструйтеся для отримання облікового запису. Це просто!
Зареєструвати аккаунтВхід
Уже зареєстровані? Увійдіть тут.
Вхід зараз