Перейти к содержимому


Фото
- - - - -

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


  • Чтобы отвечать, сперва войдите на форум
8 ответов в теме

#1 megauser

megauser
  • Пользователь
  • 140 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 20.12.2019 - 11:36

На сайте присутствует всплывающее приветственное видео при заходе на сайт, но при каждом обновлении оно постоянно всплывает, как записать его в куки чтоб запускалось только 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"

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

 

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



#2 alexivchenko

alexivchenko
  • Пользователь
  • 148 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Курск

Опубликовано 20.12.2019 - 13:53

{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.simplac...нением-в-куках/



#3 alexivchenko

alexivchenko
  • Пользователь
  • 148 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Курск

Опубликовано 20.12.2019 - 14:44

Ваш код тоже правильный, только следует весь код обернуть в 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.simplac...ies#entry111824


Изменено: alexivchenko, 20.12.2019 - 14:45


#4 megauser

megauser
  • Пользователь
  • 140 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 20.12.2019 - 15:15

{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.simplac...нением-в-куках/

 

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

 

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

 

{if !$smarty.cookies.video_fix}

{/if}

Изменено: megauser, 20.12.2019 - 15:16


#5 alexivchenko

alexivchenko
  • Пользователь
  • 148 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Курск

Опубликовано 20.12.2019 - 15:16

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

 

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

 

{if !$smarty.cookies.video_fix}

{/if}

 

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

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


Изменено: alexivchenko, 20.12.2019 - 15:17


#6 megauser

megauser
  • Пользователь
  • 140 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 20.12.2019 - 15:17

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

 

спасибо, может я затупил)



#7 megauser

megauser
  • Пользователь
  • 140 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 20.12.2019 - 15:39

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

Скрипт записи куки тоже должен быть в одной обертке с {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 версия)  и вот через эту кнопку он не срабатывает.  



#8 megauser

megauser
  • Пользователь
  • 140 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 20.12.2019 - 18:10

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

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

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



#9 alexivchenko

alexivchenko
  • Пользователь
  • 148 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Курск

Опубликовано 20.12.2019 - 18:17

Я не селён в js
Надо смотреть, что пишет у вас консоль
Тут может быть 2 случая
1. Предопределённая кнопка
Возможно не прописалось data-action="fixed_video"
2. Окно fancybox выводится позже скрипта и тогда получается скрипт не понимает, что кнопку нажали




0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых