Записи с меткой "Модaльное окно"
Slick Slider в модальном окне Bootstrap
При загрузке страницы сайта все Slick Slider, находящиеся в модальных окнах, не будут инициализированы, т.к. модальное окно имеет стиль display:none.
Чтобы решить эту проблему добавляем небольшой код на jQuery, который инициализирует Slick Slider в момент открытия модального окна и наоборот, отменит инициализацию после закрытия окна.
Чтобы решить эту проблему добавляем небольшой код на jQuery, который инициализирует Slick Slider в момент открытия модального окна и наоборот, отменит инициализацию после закрытия окна.
В примере
$('#modal').on('shown.bs.modal', function() { // запускаем модальное окно
$('#modal .slick-slider').not('.slick-initialized').slick(); // если slick slider не инициализирован, то делаем это
$('#modal .slick-slider').slick('refresh');
});
$('#modal').on('hidden.bs.modal', function() { // закрываем модальное окно
$('#modal .slick-slider').slick('unslick').empty(); // после закрытия модального окна отменяем инициализацию slick slider
});
Модальное окно с формой подписки и сохранением куки на jQuery

Добавляем в макет код показа формы:
<?php
// add ФОРМА ПОДПИСКА ЗА СКИДКУ
$oForm = Core_Entity::factory('Form', 49); // заменить ID формы
$Form_Controller_Show = new Form_Controller_Show($oForm);
if (!is_null(Core_Array::getPost($oForm->button_name)))
{
$Form_Controller_Show
->values($_POST + $_FILES)
// 0 - html, 1- plain text
->mailType(0)
->mailXsl(
Core_Entity::factory('Xsl')->getByName('ПисьмоКураторуФормыВФорматеHTML')
)
->mailFromFieldName('email')
->process();
}
$Form_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('ОтобразитьФормуВМодальномОкне')
)
->show();
?>
Подключаем в макете скрипт jquery.cookie.min.js:
<script src="/js/jquery.cookie.min.js"></script>
Проверяем куки:
<script>
$(document).ready(function($) {
if ($.cookie('was') == null) {
// Покажем всплывающее окно
setTimeout(function(){$('#popupModal').modal('show');}, 36000);
}
// Запомним в куках, что посетитель к нам уже заходил
$.cookie('was', 'value', { expires: 2, path: '/' });
});
</script>JavaScript / jQuery . jquery.cookie.min.js
jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};
РАЗНОЕ
Вызов модального окна
<script>
let modalSuccess = new bootstrap.Modal(document.getElementById('modalSuccess'));
modalSuccess.show();
</script>Создаем iframe с видео
Модальное окно с запуском видео при открыти
<div class="modal fade" id="myModalVideo" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header"><button class="close" type="button" data-dismiss="modal">x</button>
</div>
<div class="modal-body">
<object width="1" height="1" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data="" type="application/x-shockwave-flash"><param name="src" value="/video/Egeria.mp4" /><embed width="1" height="1" type="application/x-shockwave-flash" src="/video/Egeria.mp4" /></object>
</div>
</div>
</div>
</div>
Кнопка вызова модальноно окна
<button type="button" id="toggleModalVideoYoutube" data-bs-toggle="modal" data-bs-target="#myModalVideo">
Запустить модальное окно
</button>
JavaScript / jQuery
<script>
$(function() {
/*создаем iframe с видео*/
var videoIframe = $("<iframe/>", {
"class": "embed-responsive-item",
"src": "https://www.youtube.com/embed/cNLJB-giaVo?autoplay=1&enablejsapi=1&playerapiid=ytplayer",
"width": "96%",
"height": "400px",
"frameborder": "0",
"allowfullscreen": ""
});
/*по клику на кнопку .toggleModalVideoYoutube аттачим iframe с видео в модалку*/
$('.toggleModalVideoYoutube').click(function () {
$('#myModalVideo').modal('show');
videoIframe.appendTo('#myModalVideo .modal-body');
});
/*по закрытию модалки убираем iframe */
$('#myModalVideo').on('hidden.bs.modal', function () {
videoIframe.detach();
});
});
</script>