Дополнение к действию JS
Доброго времени суток!!!
Нужна помощь к дополнению к скрипту функции вызовов, которые будут отвечать за вызов модальных окон с разных ссылок. Помогите пожалуйста к скрипту добавить "myBtn1","myBtn2","myBtn3" ..... и т.д.
var modal = document.getElementById("myModal"),
btn = document.getElementById("myBtn"),
span = document.getElementsByClassName("close")[0];
btn.onclick = function () {
modal.style.display = "block"
}, span.onclick = function () {
modal.style.display = "none"
}, window.onclick = function (n) {
n.target == modal && (modal.style.display = "none")
};
|
remmas,
медитировать тут если не поможет, делайте макет, только class и никаких id. [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
|
remmas,
что мешает всем "myBtn1","myBtn2","myBtn3" добавить ещё и общий класс? |
remmas,
форум - поиск - открывашка |
Цитата:
|
Цитата:
|
Цитата:
|
Это работает на одну ссылку в которой стоит id="myBtn"
Если этот id ставить на вторую ссылку, то работать не будет вызов модального окна
var modal=document.getElementById("myModal"),btn=document.getElementById("myBtn"),span=document.getElementsByClassName("close")[0];btn.onclick=function(){modal.style.display="block"},span.onclick=function(){modal.style.display="none"},window.onclick=function(a){a.target==modal&&(modal.style.display="none")};
.modal{display:none;position:fixed;z-index:999;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,0.4)}
.modal-content{position:relative;background-color:#EAE5E5;margin:auto;padding:0;border:1px solid #444;width:33%;box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);-webkit-animation-name:animatetop;-webkit-animation-duration:.4s;animation-name:animatetop;animation-duration:.4s}
.modal-content h2,h3{font-weight:400;font-size:14px;line-height:1.1}
.modal-body-text{color:#514f4f;font-size:14px;text-align:center;padding:20px 16px}
.contact{max-width:467px;min-width:320px}
.contact *{outline:none;border:0;background:none}
form fieldset{display:block;padding:25px 30px}
form .col-2{width:100%}
form .row:after{content:'';display:table;clear:both}
form section{margin-bottom:20px}
form .input,form .textarea,form .radio,form .checkbox,form .button{position:relative;display:block}
form .fa-append{position:absolute;top:5px;right:5px;width:29px;height:29px; padding-left:3px;border-left:1px solid #e5e5e5;font-size:15px;line-height:29px;text-align:center;color:#ccc}
form .input .fa-append + input,form .textarea .fa-append + textarea{padding-right:46px}
form .input input,form .textarea textarea{display:block; box-sizing:border-box;-moz-box-sizing:border-box;width:100%;height:50px; padding:10px;outline:none;border:1px solid #e5e5e5;border-radius:0;background:#fff;font:13px/19px 'Open Sans',Helvetica,Arial,sans-serif;color:#404040;appearance:normal; -moz-appearance:none;-webkit-appearance:none;transition:border-color .3s; -o-transition:border-color .3s;-ms-transition:border-color .3s;-moz-transition:border-color .3s;-webkit-transition:border-color .3s}
form .input:hover input,form .textarea:hover textarea,form .checkbox:hover i{border-color:#00BDAB}
form .input input:focus,form .textarea textarea:focus,form .checkbox input:focus + i{border-color:#009688}
form .button{float:right;height:39px;overflow:hidden;margin-left:20px; padding:0 20px;outline:none;border:0;background-color:#ff0202;font:300 13px/39px 'Open Sans',Helvetica,Arial,sans-serif; text-decoration:none;color:#fff;cursor:pointer;opacity:.8;transition:opacity .2s; -o-transition:opacity .2s;-ms-transition:opacity .2s;-moz-transition:opacity .2s;-webkit-transition:opacity .2s}
form .button:hover{opacity:1}
@-webkit-keyframes animatetop {
from{top:-300px;opacity:0}
to{top:0;opacity:1}
}
@keyframes animatetop {
from{top:-300px;opacity:0}
to{top:0;opacity:1}
}
.modal-header{padding:2px 16px;background-color:#EAE5E5;color:#514f4f;border-bottom:1px solid #d2c7c7}
.modal-body{padding:2px 8px}
.modal-footer{padding:2px 8px;background-color:#EAE5E5;color:#514f4f;border-top:1px solid #d2c7c7;padding:10px 15px;font-size:8px;text-align:center}
.close{color:#444;float:right;font-size:28px;font-weight:700}
.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}
@media (max-width: 991px) {
.modal-content{width:85%}
}
@media (max-width: 767px) {
.modal-content{width:50%}
}
@media (max-width: 575px) {
.modal-content{width:75%}
}
@media (max-width: 420px) {
.modal-content{width:95%}
.modal-body{padding:0}
.modal-footer,.modal-content h2{font-size:10px}
}
@media screen and (max-width: 470px) {
.col,.col-2{float:none!important;width:100%!important}
}
<a href="#" id="myBtn">Модальное окно</a> <div id="myModal" class="modal"> <div class="modal-content"> <div class="modal-header"> <span class="close">×</span> <h2>Верх окна</h2> </div> <div class="modal-body"> Текст окна </div> <div class="modal-footer">Футер</div> </div> |
remmas,
все кнопки будут открывать одно и тоже модальное окно? |
Цитата:
|
Цитата:
Цитата:
Цитата:
<a href="#" id="myBtn" class="showmod"> Ну не хотите, как хотите Да и не интересен ваш css Что бы помочь, интересен html, со всеми ссылками кнопками (кстати, почему <a>, а не <button>?), и контейнером, где они находятся |
remmas,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.modal {
display: none;
position: fixed;
z-index: 999;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: #000;
background-color: rgba(0, 0, 0, 0.4)
}
.modal-content {
position: relative;
background-color: #EAE5E5;
margin: auto;
padding: 0;
border: 1px solid #444;
width: 33%;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-webkit-animation-name: animatetop;
-webkit-animation-duration: .4s;
animation-name: animatetop;
animation-duration: .4s
}
.modal-content h2,
h3 {
font-weight: 400;
font-size: 14px;
line-height: 1.1
}
.modal-body-text {
color: #514f4f;
font-size: 14px;
text-align: center;
padding: 20px 16px
}
.contact {
max-width: 467px;
min-width: 320px
}
.contact * {
outline: none;
border: 0;
background: none
}
form fieldset {
display: block;
padding: 25px 30px
}
form .col-2 {
width: 100%
}
form .row:after {
content: '';
display: table;
clear: both
}
form section {
margin-bottom: 20px
}
form .input,
form .textarea,
form .radio,
form .checkbox,
form .button {
position: relative;
display: block
}
form .fa-append {
position: absolute;
top: 5px;
right: 5px;
width: 29px;
height: 29px;
padding-left: 3px;
border-left: 1px solid #e5e5e5;
font-size: 15px;
line-height: 29px;
text-align: center;
color: #ccc
}
form .input .fa-append+input,
form .textarea .fa-append+textarea {
padding-right: 46px
}
form .input input,
form .textarea textarea {
display: block;
box-sizing: border-box;
-moz-box-sizing: border-box;
width: 100%;
height: 50px;
padding: 10px;
outline: none;
border: 1px solid #e5e5e5;
border-radius: 0;
background: #fff;
font: 13px/19px 'Open Sans', Helvetica, Arial, sans-serif;
color: #404040;
appearance: normal;
-moz-appearance: none;
-webkit-appearance: none;
transition: border-color .3s;
-o-transition: border-color .3s;
-ms-transition: border-color .3s;
-moz-transition: border-color .3s;
-webkit-transition: border-color .3s
}
form .input:hover input,
form .textarea:hover textarea,
form .checkbox:hover i {
border-color: #00BDAB
}
form .input input:focus,
form .textarea textarea:focus,
form .checkbox input:focus+i {
border-color: #009688
}
form .button {
float: right;
height: 39px;
overflow: hidden;
margin-left: 20px;
padding: 0 20px;
outline: none;
border: 0;
background-color: #ff0202;
font: 300 13px/39px 'Open Sans', Helvetica, Arial, sans-serif;
text-decoration: none;
color: #fff;
cursor: pointer;
opacity: .8;
transition: opacity .2s;
-o-transition: opacity .2s;
-ms-transition: opacity .2s;
-moz-transition: opacity .2s;
-webkit-transition: opacity .2s
}
form .button:hover {
opacity: 1
}
@-webkit-keyframes animatetop {
from {
top: -300px;
opacity: 0
}
to {
top: 0;
opacity: 1
}
}
@keyframes animatetop {
from {
top: -300px;
opacity: 0
}
to {
top: 0;
opacity: 1
}
}
.modal-header {
padding: 2px 16px;
background-color: #EAE5E5;
color: #514f4f;
border-bottom: 1px solid #d2c7c7
}
.modal-body {
padding: 2px 8px
}
.modal-footer {
padding: 2px 8px;
background-color: #EAE5E5;
color: #514f4f;
border-top: 1px solid #d2c7c7;
padding: 10px 15px;
font-size: 8px;
text-align: center
}
.close {
color: #444;
float: right;
font-size: 28px;
font-weight: 700
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer
}
@media (max-width: 991px) {
.modal-content {
width: 85%
}
}
@media (max-width: 767px) {
.modal-content {
width: 50%
}
}
@media (max-width: 575px) {
.modal-content {
width: 75%
}
}
@media (max-width: 420px) {
.modal-content {
width: 95%
}
.modal-body {
padding: 0
}
.modal-footer,
.modal-content h2 {
font-size: 10px
}
}
@media screen and (max-width: 470px) {
.col,
.col-2 {
float: none !important;
width: 100% !important
}
}
.modal.open {
display: block;
}
</style>
<script>
document.addEventListener("click", ({
target
}) => {
let elem;
if (elem = target.closest("a.btn_modal")) myModal.classList.add("open");
if (elem = target.closest("#myModal .close") || target == myModal) myModal.classList.remove("open");
})
</script>
</head>
<body>
<a href="#" id="myBtn" class="btn_modal">Модальное окно</a>
<a href="#" id="myBtn1" class="btn_modal">Модальное окно</a>
<a href="#" id="myBtn2" class="btn_modal">Модальное окно</a>
<a href="#" id="myBtn3" class="btn_modal">Модальное окно</a>
<a href="#" id="myBtn4" class="btn_modal">Модальное окно</a>
<div id="myModal" class="modal">
<div class="modal-content">
<div class="modal-header"> <span class="close">×</span>
<h2>Верх окна</h2>
</div>
<div class="modal-body">
Текст окна
</div>
<div class="modal-footer">Футер</div>
</div>
</div>
</body>
</html>
|
|
Цитата:
|
remmas,
можно только гадать, что у вас не так. |
Цитата:
|
Цитата:
document.addEventListener("click", event => {
let elem, {target} = event;
if (elem = target.closest("a.btn_modal")) {
event.preventDefault();
myModal.classList.add("open");
};
if (elem = target.closest("#myModal .close") || target == myModal) myModal.classList.remove("open");
})
|
| Часовой пояс GMT +3, время: 12:58. |