Перейти к содержанию
Официальный форум поддержки Simpla

Показывать всплывающее видео первый раз при заходе на сайт


Рекомендуемые сообщения

На сайте присутствует всплывающее приветственное видео при заходе на сайт, но при каждом обновлении оно постоянно всплывает, как записать его в куки чтоб запускалось только 1 раз. Событие на кнопку закрытия видео повесить?

 

в данный момент 

 

 <div class="fixed_video">
<a class="fixed_link" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;">
</a>
</div> 

есть линк на видео (которое можно включить самому) ну и по умолчанию через 10 секунд происходит автоматический клик.

	setTimeout(function(){
  $('.fixed_link').trigger('click');
}, 10000); 

 

Ну а дальше попытка записать в куки

 

{if !$smarty.cookies.video_fix}
<div class="fixed_video">
<a class="fixed_link" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;">
</a>
</div> 

<script>
    setTimeout(function(){
$('.fixed_link').trigger('click');
}, 10000); 
</script>

{/if}

<script>
var $video_fix = document.querySelector('.fixed_video'),
$video_fix_Btn = document.querySelector('[data-action="fixed_video"]');
$video_fix_Btn.addEventListener('click', function(){
$video_fix.remove();
document.cookie = "video_fix=true";})
</script>

атрибут записал в fancybox.js

 

data-action="fixed_video"

повесив его на кнопку закрыть видео.

 

Но что то не записывает в куки.

Ссылка на сообщение
Поделиться на другие сайты
{if $smarty.cookies.video_fix !== 'close'}
<div class="fixed_video">
<a class="fixed_link" onclick="document.cookie='video_fix=close;path=/';document.location.reload();" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;">X Закрыть</a>
</div> 

<script>
setTimeout(function(){
$('.fixed_link').trigger('click');
}, 10000); 
</script>
{/if}

http://forum.simplacms.ru/topic/9077-закрыть-всплывающее-окно-с-сохранением-в-куках/

Ссылка на сообщение
Поделиться на другие сайты

Ваш код тоже правильный, только следует весь код обернуть в if и прописать кнопку закрытия

{if !$smarty.cookies.video_fix}
<div class="fixed_video">
<button type="button" data-action="fixed_video">Закрыть</button>
<a class="fixed_link" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;">
</a>
</div> 

<script>
    setTimeout(function(){
$('.fixed_link').trigger('click');
}, 10000); 
</script>

<script>
var $video_fix = document.querySelector('.fixed_video'),
$video_fix_Btn = document.querySelector('[data-action="fixed_video"]');

$video_fix_Btn.addEventListener('click', function(){
$video_fix.remove();
document.cookie = "video_fix=true";
})
</script>

{/if}

http://forum.simplacms.ru/topic/14356-предупреждение-о-возрастном-ограничении-18-лет/?hl=smarty.cookies#entry111824

Изменено пользователем alexivchenko
Ссылка на сообщение
Поделиться на другие сайты

 

{if $smarty.cookies.video_fix !== 'close'}
<div class="fixed_video">
<a class="fixed_link" onclick="document.cookie='video_fix=close;path=/';document.location.reload();" data-fancybox data-type="ajax" data-src="video.php" href="javascript:;">X Закрыть</a>
</div> 

<script>
setTimeout(function(){
$('.fixed_link').trigger('click');
}, 10000); 
</script>
{/if}

http://forum.simplacms.ru/topic/9077-закрыть-всплывающее-окно-с-сохранением-в-куках/

 

Спасибо решение видел, но то что перезагрузка происходит это на мой взгляд плохо. Поэтому хотел через js реализовать.

 

я же вроде обернул все решение или то что все скрипты нужно?

 

{if !$smarty.cookies.video_fix}

{/if}
Изменено пользователем megauser
Ссылка на сообщение
Поделиться на другие сайты

 

Спасибо решение видел, но то что перезагрузка происходит это на мой взгляд плохо. Поэтому хотел через js реализовать.

 

я же вроде обернул все решение

 

{if !$smarty.cookies.video_fix}

{/if}

 

Я выше ваш код подправил и проверил 

Скрипт записи куки тоже должен быть в одной обертке с {if !$smarty.cookies.video_fix}

Изменено пользователем alexivchenko
Ссылка на сообщение
Поделиться на другие сайты

Я выше ваш код подправил и проверил 

Скрипт записи куки тоже должен быть в одной обертке с {if !$smarty.cookies.video_fix}

 

у меня проблема в том что я атрибут хочу подключить на крестик закрыть видео, 

 

close: '<button data-fancybox-close data-action="fixed_video" class="fancybox-button fancybox-button--close" title="{{CLOSE}}">

это строка параметров из настроек fancybox.js ( 3 версия)  и вот через эту кнопку он не срабатывает.  

Ссылка на сообщение
Поделиться на другие сайты

Я выше ваш код подправил и проверил 

Скрипт записи куки тоже должен быть в одной обертке с {if !$smarty.cookies.video_fix}

:)  в общем при первом срабатывании в js добавил просто запись в куки и все.

Ссылка на сообщение
Поделиться на другие сайты

Я не селён в js

Надо смотреть, что пишет у вас консоль

Тут может быть 2 случая

1. Предопределённая кнопка

Возможно не прописалось data-action="fixed_video"

2. Окно fancybox выводится позже скрипта и тогда получается скрипт не понимает, что кнопку нажали

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

Загрузка...
×
×
  • Создать...