Scroll content in fixed dialog
by infous
HTML
<div class="main">
<div class="sheet">
<a href="#" class="open-dialog">Open dialog</a>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni dicta error similique omnis facere libero minus voluptates recusandae aspernatur molestiae maiores voluptate possimus ducimus quas totam nesciunt eius dolores minima.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni dicta error similique omnis facere libero minus voluptates recusandae aspernatur molestiae maiores voluptate possimus ducimus quas totam nesciunt eius dolores minima.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni dicta error similique omnis facere libero minus voluptates recusandae aspernatur molestiae maiores voluptate possimus ducimus quas totam nesciunt eius dolores minima.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni dicta error similique omnis facere libero minus voluptates recusandae aspernatur molestiae maiores voluptate possimus ducimus quas totam nesciunt eius dolores minima.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni dicta error similique omnis facere libero minus voluptates recusandae aspernatur molestiae maiores voluptate possimus ducimus quas totam nesciunt eius dolores minima.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni dicta error similique omnis facere libero minus voluptates recusandae aspernatur molestiae maiores voluptate possimus ducimus quas totam nesciunt eius dolores minima.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni dicta error similique omnis facere libero minus voluptates recusandae aspernatur molestiae maiores voluptate possimus ducimus quas totam nesciunt eius dolores minima.</p>
</div>
</div>
<div class="overlay">
<div class="dialog">
<p>Lorem ipsum dolor sit amet, consectetur...
CSS
html,
body,
.main {
height: 100%;
}
body {
background: #aaf500;
color: #444;
display: block;
margin: 0;
overflow: hidden;
position: relative;
}
.main {
overflow: auto;
}
.sheet {
margin: 0 auto;
padding: 20px;
text-align: center;
width: 300px;
}
.overlay {
background: rgba(0, 0, 0, .5);
box-sizing: border-box;
display: none;
height: 100%;
left: 0;
overflow: auto;
position: fixed;
top: 0;
width: 100%;
}
.dialog {
background: #fff;
margin: 100px auto 10px auto;
padding: 5px;
position: relative;
width: 300px;
}
JavaScript
$(".open-dialog").click(function (e) {
$(".overlay").fadeIn();
e.preventDefault();
});
$(".overlay").click(function () {
$(this).fadeOut();
});
$(".dialog").click(function (e) {
e.stopPropagation();
});