Как создать простое модальное окно для сайта
Для масштабирования, будут использовать преобразования значение шкалы от 1,2 к 1 . Уменьшение будет иметь от 0,7 до 1 . И так, приступим.
Шаг 1. HTML
Мы будем использовать контейнер, в котором будут размещены классы для вызова определенного окна с необходимым нам содержанием.
Шаг 2. CSS
Модальные окна будут иметь простой фон, также добавим тени, кроме этого мы будем использовать стили для кнопки, которые мы заготовили ранее.
Нам необходимо добавить трансформации, с помощью которых окна будут увеличиваться и уменьшаться при вызове.
Также был добавлен небольшой фрагмент jQuery, для улучшения работоспособности и вспомогательных функций.
Вот и все. Готово!
Шаг 1. HTML
Мы будем использовать контейнер, в котором будут размещены классы для вызова определенного окна с необходимым нам содержанием.
Код
<div class="overlay-container">
<div class="window-container zoomin">
<h3>Модальное окно с эффектом уменьшения</h3>
<div align=center>Вы просматриваете простое модальное окно для сайта <br/>
с эффектом увеличения созданное с помощью CSS3<br/></div>
<span class="close">Закрыть</span>
</div>
<div class="window-container zoomout">
<h3>Модальное окно с эффектом увеличения</h3>
<div align=center>Вы просматриваете простое модальное окно для сайта <br/>
с эффектом увеличения созданное с помощью CSS3<br/></div>
<span class="close">Закрыть</span>
</div>
</div>
<div class="window-container zoomin">
<h3>Модальное окно с эффектом уменьшения</h3>
<div align=center>Вы просматриваете простое модальное окно для сайта <br/>
с эффектом увеличения созданное с помощью CSS3<br/></div>
<span class="close">Закрыть</span>
</div>
<div class="window-container zoomout">
<h3>Модальное окно с эффектом увеличения</h3>
<div align=center>Вы просматриваете простое модальное окно для сайта <br/>
с эффектом увеличения созданное с помощью CSS3<br/></div>
<span class="close">Закрыть</span>
</div>
</div>
Шаг 2. CSS
Модальные окна будут иметь простой фон, также добавим тени, кроме этого мы будем использовать стили для кнопки, которые мы заготовили ранее.
Код
.overlay-container {
display: none;
content: " ";
height: 100%;
width: 100%;
position: absolute;
left: 0;
top: 0;
background: radial-gradient(center, ellipse cover, rgba(127,127,127,0) 0%,rgba(127,127,127,0.9) 100%);
}
.window-container {
display: block;
background: #fcfcfc;
margin: 8em auto;
width: 500px;
padding: 10px 20px 20px;
text-align: left;
z-index: 3;
border-radius: 3px;
box-shadow: 0px 0px 30px rgba(0,0,0,0.2);
transition: 0.4s ease-out;
opacity: 0;
}
.window-container h3 {
margin: 1em 0 0.5em;
font-family: "Oleo Script";
font-weight: normal;
font-size: 25px;
text-align: center;
}
.close {
margin: 1em auto;
display: block;
width: 52px;
background: linear-gradient(top, #fafafa 0%,#f4f4f4 40%,#e5e5e5 100%);
border: 1px solid #aaa;
padding: 5px 14px;
color: #444;
font-family: Helvetica, sans-serif;
font-size: 12px;
border-radius: 3px;
box-shadow: 0 1px 3px #ddd;
transition: 0.2s linear;
cursor: pointer;
}
.close:hover {
background: linear-gradient(top, #fefefe 0%,#f8f8f8 40%,#e9e9e9 100%);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
border: 1px solid #aaa;
}
.close:active {
background: linear-gradient(to bottombottom, #f4f4f4 0%,#efefef 40%,#dcdcdc 100%);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
}
display: none;
content: " ";
height: 100%;
width: 100%;
position: absolute;
left: 0;
top: 0;
background: radial-gradient(center, ellipse cover, rgba(127,127,127,0) 0%,rgba(127,127,127,0.9) 100%);
}
.window-container {
display: block;
background: #fcfcfc;
margin: 8em auto;
width: 500px;
padding: 10px 20px 20px;
text-align: left;
z-index: 3;
border-radius: 3px;
box-shadow: 0px 0px 30px rgba(0,0,0,0.2);
transition: 0.4s ease-out;
opacity: 0;
}
.window-container h3 {
margin: 1em 0 0.5em;
font-family: "Oleo Script";
font-weight: normal;
font-size: 25px;
text-align: center;
}
.close {
margin: 1em auto;
display: block;
width: 52px;
background: linear-gradient(top, #fafafa 0%,#f4f4f4 40%,#e5e5e5 100%);
border: 1px solid #aaa;
padding: 5px 14px;
color: #444;
font-family: Helvetica, sans-serif;
font-size: 12px;
border-radius: 3px;
box-shadow: 0 1px 3px #ddd;
transition: 0.2s linear;
cursor: pointer;
}
.close:hover {
background: linear-gradient(top, #fefefe 0%,#f8f8f8 40%,#e9e9e9 100%);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
border: 1px solid #aaa;
}
.close:active {
background: linear-gradient(to bottombottom, #f4f4f4 0%,#efefef 40%,#dcdcdc 100%);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
}
Нам необходимо добавить трансформации, с помощью которых окна будут увеличиваться и уменьшаться при вызове.
Код
.zoomin {
transform: scale(1.2);
}
.zoomout {
transform: scale(0.7);
}
.window-container-visible {
transform: scale(1);
opacity: 1;
}
transform: scale(1.2);
}
.zoomout {
transform: scale(0.7);
}
.window-container-visible {
transform: scale(1);
opacity: 1;
}
Также был добавлен небольшой фрагмент jQuery, для улучшения работоспособности и вспомогательных функций.
Код
$(document).ready(function() {
$('.button').click(function() {
type = $(this).attr('data-type');
$('.overlay-container').fadeIn(function() {
window.setTimeout(function(){
$('.window-container.'+type).addClass('window-container-visible');
}, 100);
});
});
$('.close').click(function() {
$('.overlay-container').fadeOut().end().find('.window-container').removeClass('window-container-visible');
});
});
$('.button').click(function() {
type = $(this).attr('data-type');
$('.overlay-container').fadeIn(function() {
window.setTimeout(function(){
$('.window-container.'+type).addClass('window-container-visible');
}, 100);
});
});
$('.close').click(function() {
$('.overlay-container').fadeOut().end().find('.window-container').removeClass('window-container-visible');
});
});
Вот и все. Готово!
-
FalleN -
4132 -
1 -
286
Но только нужно ставить наверное на те модули которые обновляться должны не раньше через пару тройку минут
С Уважением, Андрей...