기존에 쓰던 검색창은 블로그에서 바로 보이고 입력 후 검색하는 방법으로 구성하였는데, 클릭하여 따로 팝업을 띄운 후 거기서 검색하는 방법이 더 좋을 것 같다는 생각에 수정하였습니다.
일단 팝업 검색창을 띄울 레이어를 생성합니다.
간단하게 div 태그로 구역을 지정하고, style 을 설정하였습니다.
<div id="SearchLayer" style="position:absolute;z-index:999;display:none; width:100%; height:90%;
background: none rgba(0, 0, 0, 0.9);
filter: progid:DXImageTransform.Microsoft.Gradient(startColorstr='#80000000', endColorstr='#80000000');
" align='center'>
<table valign="middle" height=100%><tr><td >
<input type='text'><input type='submit'><br>
...
<br><br>
<font size='3' color='white' onclick='CloseSearch()'>Close</font>
</td></tr></table>
</div>
블로그에 적용하기 전에 테스트 코드로 짜서 테스트하느라, 실제 적용된거랑은 약간 차이가 있겠지요.여기서 처음 접속시에는 보이지 않게하기 위해서 display:none; 을 지정하였습니다.
그다음 매번 클릭 시 나타났다, 없어졌다를 반복하기 위해서 해당 div를 제어하는 js를 작성합니다.
<script type="text/javascript">
function ViewSearch(){
document.getElementById("SearchLayer").style.display='inline'
}
function CloseSearch(){
document.getElementById("SearchLayer").style.display='none'
}
</script>
getElementById로 div 의 id를 찾은 후 style로 노출 유무를 지정해주시면 됩니다.마지막으로 방금 만든 ViewSearch() 함수와 CloseSearch() 함수를 실행하는 부분을 작성해주시면 됩니다.
테스트할때는 그냥 a 태그로 했었고, 실제 적용에는 메뉴바에서 해당 함수를 호출하도록 해놨습니다.
<a href="javascript:ViewSearch();">HAHWUL_TEST</a>
실제 이런식으로 적용이 되었지요.테스트 진행하며 만들었던 html 전체 코드입니다.
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function ViewSearch(){
document.getElementById("SearchLayer").style.display='inline'
}
function CloseSearch(){
document.getElementById("SearchLayer").style.display='none'
}
</script>
<div id="SearchLayer" style="position:absolute;z-index:999;display:none; width:100%; height:90%;
background: none rgba(0, 0, 0, 0.9);
filter: progid:DXImageTransform.Microsoft.Gradient(startColorstr='#80000000', endColorstr='#80000000');
" align='center'>
<table valign="middle" height=100%><tr><td >
<input type='text'><input type='submit'><br>
...
<br><br>
<font size='3' color='white' onclick='CloseSearch()'>Close</font>
</td></tr></table>
</div>
<a href="javascript:ViewSearch();">HAHWUL_TEST</a>
</body>
</html>
HAHWULSecurity engineer, Gopher and H4cker! |
마지막 html 소스에 오타있어요
ReplyDeleteinput text 입력 버튼 생성 부분에 'type'
그리고 감사히 잘보고갑니다~
Delete앗 실수가 있었군요 ㅜㅜ 오타 부분 체크해서 수정했습니다.
Delete감사합니다 :)
예를 들을 list에서 login이라는 팝업을 띄우려면 function 내용을 어떻게 바꿔줘야하나요??
ReplyDelete설명이 너무 부족해서 다시 적습니다. 게시판의 list 페이지에서 로그인 페이지를 레이어로 띄울 수 있나요..?ㅠㅠ
Delete레이어하는데 엄청 도움이 되었습니다! 제가 실력이 부족해서 질문을 해봅니다...
코드는 단순하게 버튼을 눌렀을 때 SearchLayer 라는 id 값을 가진 객체의 CSS를 변경하여 보여지도록 바꾸는겁니다.
Delete위 코드 기준이라면 해당 객체에 로그인 페이지를 구현하셔도 되고, 만약 이미 만들어진 로그인 페이지에 넣으려고 한다면 iframe 등으로 페이지 안에서 로그인 페이지가 보여지도록 만들 수 있을 것 같네요.
예를들면 이런식으로요!
Delete<div id="SearchLayer" style="position:absolute;z-index:999;display:none; width:100%; height:90%;
background: none rgba(0, 0, 0, 0.9);
filter: progid:DXImageTransform.Microsoft.Gradient(startColorstr='#80000000', endColorstr='#80000000');
" align='center'>
<iframe src="login.page.address" style="width:100%;height;100%;border;none;"
</div>