반응형
특정 클래스의 버튼을 클릭시 레이어 팝업을 띄우는 방법에 대해 알아보도록 하겠습니다, 레이어 팝업 호출시 뒤의 백그라운드에 흑백처리하여 레이어팝업만 강조하는 방법과, 일반적인 레이어팝업만 호출하는 형태 각각 알아보도록 합니다.
HTML 영역
<a href="#cart_layer" class="btn-example">일반 팝업레이어</a>
<div id="cart_layer" class="pop-layer">
<div class="pop-container">
<div class="pop-conts">
<!--content //-->
<p class="ctxt mb20"><b><font size="5">장바구니</font></b><br>
</p><br>
상품명 : ITEMNAME<br>
판매가 : ITEMPRICE<br>
수량 : QTY<br>
<div class="btn-r">
<a href="#" class="myButton">장바구니 이동하기</a>
<a href="#" class="myButton2">주문하러 가기</a>
<a href="#" class="btn-layerClose">close</a>
</div>
<!--// content-->
</div>
</div>
</div>
<br/><br/>
<a href="#layer2" class="btn-example">딤처리 팝업레이어</a>
<div class="dim-layer">
<div class="dimBg"></div>
<div id="layer2" class="pop-layer">
<div class="pop-container">
<div class="pop-conts">
<!--content //-->
<p class="ctxt mb20"><b><font size="5">장바구니</font></b><br>
</p><br>
상품명 : ITEMNAME<br>
판매가 : ITEMPRICE<br>
수량 : QTY<br>
<div class="btn-r">
<a href="#" class="myButton">장바구니 이동하기</a>
<a href="#" class="myButton2">주문하러 가기</a>
<a href="#" class="btn-layerClose">close</a>
</div>
<!--// content-->
</div>
</div>
</div>
</div>
CSS 영역
<style type="text/css">
.pop-layer .pop-container {
padding: 20px 25px;
}
.pop-layer p.ctxt {
color: #666;
line-height: 25px;
}
.pop-layer .btn-r {
width: 100%;
margin: 10px 0 20px;
padding-top: 10px;
border-top: 1px solid #DDD;
text-align: right;
}
.pop-layer {
display: none;
position: absolute;
top: 50%;
left: 50%;
position: fixed;
width: 410px;
height: auto;
background-color: #fff;
border: 5px solid #000000;
z-index: 10;
}
.dim-layer {
display: none;
position: fixed;
_position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
}
.dim-layer .dimBg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000;
opacity: .5;
filter: alpha(opacity=50);
}
.dim-layer .pop-layer {
display: block;
}
a.btn-layerClose {
display: inline-block;
height: 25px;
padding: 0 14px 0;
border: 1px solid #304a8a;
background-color: #3f5a9d;
font-size: 13px;
color: #fff;
line-height: 25px;
}
a.btn-layerClose:hover {
border: 1px solid #091940;
background-color: #1f326a;
color: #fff;
}
.myButton {
background-color:#44c767;
border-radius:28px;
border:1px solid #18ab29;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:Arial;
font-size:13px;
padding:11px 15px;
text-decoration:none;
text-shadow:0px 1px 0px #2f6627;
}
.myButton:hover {
background-color:#5cbf2a;
}
.myButton:active {
position:relative;
top:1px;
}
.myButton2 {
background-color:#1c93a8;
border-radius:28px;
border:1px solid #0a0a0a;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:Arial;
font-size:13px;
padding:11px 15px;
text-decoration:none;
text-shadow:0px 1px 0px #8a8a21;
}
.myButton2:hover {
background-color:#4b1c80;
}
.myButton2:active {
position:relative;
top:1px;
}
</style>
자바스크립트 영역
<script type="text/javascript">
$('.btn-example').click(function(){
var $href = $(this).attr('href');
layer_popup($href);
});
function layer_popup(el){
var $el = $(el); //레이어의 id를 $el 변수에 저장
var isDim = $el.prev().hasClass('dimBg'); //dimmed 레이어를 감지하기 위한 boolean 변수
isDim ? $('.dim-layer').fadeIn() : $el.fadeIn();
var $elWidth = ~~($el.outerWidth()),
$elHeight = ~~($el.outerHeight()),
docWidth = $(document).width(),
docHeight = $(document).height();
// 화면의 중앙에 레이어를 띄운다.
if ($elHeight < docHeight || $elWidth < docWidth) {
$el.css({
marginTop: -$elHeight /2,
marginLeft: -$elWidth/2
})
} else {
$el.css({top: 0, left: 0});
}
$el.find('a.btn-layerClose').click(function(){
isDim ? $('.dim-layer').fadeOut() : $el.fadeOut(); // 닫기 버튼을 클릭하면 레이어가 닫힌다.
return false;
});
$('.layer .dimBg').click(function(){
$('.dim-layer').fadeOut();
return false;
});
}
</script>
적용화면
일반 팝업레이어 클릭시 화면
딤처리 레이어팝업
적용 전체 로컬 소스
반응형
'HTML' 카테고리의 다른 글
HTML 레이어 팝업 모바일 오늘 하루 보지 않기 쿠키+뒷배경 음영넣기 (0) | 2021.08.27 |
---|---|
HTML 이미지맵 반응형 적용 방법 (3) | 2021.03.19 |
HTML 이미지맵 (image map) 좌표 링크 설정 방법 (0) | 2021.03.19 |
HTML 유튜브 영상 자동/반복 재생 하기 (크롬/익스플로러) (5) | 2021.01.12 |
[CSS] 스타일 강제적용 !important (0) | 2020.12.13 |
댓글