Здравствуйте. Помогите сделать один скрипт на все iframe. И остановку видео при закрытии модального окна
Сейчас приходится делать скрипт на каждый iframe. Сделал остановку воспроизведения при закрытии модального окна, но она работает только в Коде-пен. При загрузке на сервер почему то не работает.( пример кода только на первое видео)
Ниже человек под ником Grundy предложил выборку , но она открывает только второй iframe (при тестировании в коде-пен(По указанной ссылке есть такая информация : Если указанный селектор включает псевдо-элемент CSS,возвращенный список всегда пуст. может в этом причина?)) на сайт не загружал. Помогите пожалуйста.
https://codepen.io/Mcrabs/pen/JjWqxoX?editors=1111
(function () {
var button = document.querySelector('.popup');
var iframe = document.querySelector('.modal-iframe');
button.addEventListener('click', function () {
iframe.src = iframe.getAttribute('data-src');
iframe.classList.toggle('hidden.iframe');
});
})();
(function () {
var button = document.querySelector('.popupa');
var iframe = document.querySelector('.modal-iframea');
button.addEventListener('click', function () {
iframe.src = iframe.getAttribute('data-src');
iframe.classList.toggle('hidden.iframe');
});
})();
.wrapper {
text-align: center;
}
.back, .iw-modal-btn {
text-align: center;
display: inline-block;
text-decoration: none;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
transition: all 1s ease;
}
.back:hover, .iw-modal-btn:hover {
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
-o-transform: scale(1.1);
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
transition: all 0.5s ease;
background:#439ce000;
}
/********Модальное окно************/
/*CSS-свойства для заднего фона модального окна*/
.iw-modal {
opacity: 0;
background: rgb(0 0 0 / 43%);
pointer-events: none;
position: fixed;
top: 10px;
right: 0;
bottom: 0;
left: 0;
z-index: 9999;
transition: all 1s ease;
}
.iw-modal:target {
opacity: 1; /*при клике окно становится видимым*/
pointer-events: auto; /*теперь по окну можно кликать мышкой*/
overflow-y: auto; /*прокрутка по вертикли страницы*/
}
.iw-modal-wrapper {
max-width: 800px;
height: 600px;
margin: auto;
margin-top: 5vh;
}
/*CSS-свойства для блока, содержащего контент модального окна */
.iw-CSS-modal-inner {
position: relative;
}
/*CSS-свойства заголовка модального окна */
.iw-modal-header {
padding: 15px;
margin-top: 20px;
background: #fcfef6;
position: relative;
}
/*CSS для кнопки закрытия окна*/
a.iw-close {
position: absolute;
top: 2px;
right: 10px;
font-size: 26px;
color: #000;
text-decoration: none;
}
a.iw-close:hover, a.iw-close:focus {
color: #000; /*цвет шрифта при наведении*/
cursor: pointer;
}
/*CSS для блока с текстом модального окна*/
.iw-modal-text {min-width: 90%;
height: 600px;
}
.modal-iframe{min-width:100%;min-he(function () {
var button = document.querySelector('.popup');
var iframe = document.querySelector('.modal-iframe');
button.addEventListener('click', function () {
iframe.src = iframe.getAttribute('data-src');
iframe.classList.toggle('hidden.iframe');
});
})();ight:90%;}
iframe {
display: block;
}
.hidden.iframe {
display: none;
}
<div class="top">
<div class="video-block one">
<div class="wrapper"><button class="popup"><a href="#iw-modal-amur1" class="iw-modal-btn"><img src="https://mblonline.ru/Russia/fotorus/amurskaya-tambovka.JPG" width="300" height="200" alt="Дальневосточный аист"></a></button>
<div id="iw-modal-amur1" class="iw-modal"><div class="iw-modal-wrapper"><div class="iw-CSS-modal-inner"><div class="iw-modal-header"><a href="#close" title="Закрыть" class="iw-close">×</a></div><div class="iw-modal-text">
<iframe class="modal-iframe hidden.iframe" id="myvideok" data-src="https://open.ivideon.com/embed/v2/?server=100-Tp3RLgbPyG8uX3xFVpQTa4&camera=0&width=&height=&lang=ru" width="897" height="400" frameborder="0" allowfullscreen ></iframe>
</div></div></div></div></div><div class="tab"><input type="checkbox" class="read" id="readamur1" /><label for="readamur1" class="more-ul">Дальневосточный аист — одна из самых редких птиц Дальнего Востока России.</label><div class="tab-content">Онлайн камера расположена около села Тамбовки. Гнездо №1</div></div></div>
<div class="video-block one">
<div class="wrapper"><button class="popupa"><a href="#iw-modal-amur2" class="iw-modal-btn"><img src="https://mblonline.ru/Russia/fotorus/berezovskii-zapovednik2.JPG" width="300" height="200" alt="Дальневосточный аист"></a></button>
<div id="iw-modal-amur2" class="iw-modal"><div class="iw-modal-wrapper"><div class="iw-CSS-modal-inner"><div class="iw-modal-header"><a href="#close" title="Закрыть" class="iw-close">×</a></div><div class="iw-modal-text">
<iframe class="modal-iframea modal-iframe hidden.iframe" data-src="https://open.ivideon.com/embed/v2/?server=100-hbPET0T2QpL7naUp4YZJhr&camera=0&width=&height=&lang=ru" type="text/html" frameborder="0" allowfullscreen></iframe>
</div></div></div></div></div><div class="tab"><input type="checkbox" class="read" id="readamur2" /><label for="readamur2" class="more-ul">Дальневосточный аист гнездо №1 — одна из самых редких птиц Дальнего Востока России.</label><div class="tab-content"> Онлайн камера расположена в заказнике "Берёзовский" Амурской области, Ивановском районе, левый берег реки Зея</div></div></div>
</div></div></div>
Ответы (1 шт):
Так как структура одинаковая и все лежит внутри элемента с классом wrapper, достаточно получить их все, пройтись по ним в цикле и добавить обработчик кнопки
for(var wrapper of document.querySelectorAll('.wrapper')){
var button = wrapper.querySelector('button'); // .popup
var iframe = wrapper.querySelector('iframe'); // .iframe
button.addEventListener('click', function () {
iframe.src = iframe.getAttribute('data-src');
iframe.classList.toggle('hidden.iframe');
});
}