묻고답하기
Jquery
2010.11.02 07:34
Jquery 를 이용해서 Fade in out 버튼들을 만들고 싶습니다
jquery_fade.js 파일을 불러서 쓰는데 이하가 js 파일 내 전체입니다
/* JQuery 를 이용한 Layer Fade In/Out 스크립트 ----------------------------------------------------------------------------- */
jQuery(function($){ function layer_open(el){ //$('.layer').addClass('open'); $('.layer').fadeIn(); var temp = $('#' + el); if (temp.outerHeight() < $(document).height() ) temp.css('margin-top', '-'+temp.outerHeight()/2+'px'); else temp.css('top', '0px'); if (temp.outerWidth() < $(document).width() ) temp.css('margin-left', '-'+ '+ '+temp.outerWidth()/2+'px'); else temp.css('left', '0px'); } $('#layer_open').click(function(){ layer_open('login'); /* 열고자 하는 것의 아이디를 입력 */ return false; }); $('.layer .bg').click(function(){ $('.layer').fadeOut(); }); $('#layer_close').click(function(){ $('.layer').fadeOut(); return false; }); $(document).ready(function(){ }); });
이것을 layout이나 기타 파일에서
<span class="button medium"><a href="#" id="layer_open">로그인</a></span> 버튼을 넣고
끝에
<div class="layer">
<div class="bg"></div>
<div class="layer_area" id="login"><p style="width:400px; text-align:justify; font-family:Malgun gothic;">로그인창</p><br /><span class="button medium"><a href="#" id="layer_close">팝업창 닫기</a></span></div>
</div>
를 넣어 사용합니다
여기서 질문을 드리고 싶은게 버튼을 여러개 넣고, layer 를 여러개 부르고 싶은데 이상하게 함수명만 바꾸면
버튼들이 제대로 동작을 안하거나 버튼을 누르면 CSS가 깨지는것 같습니다 (버튼 모양이 유지가 안되고 깨진다는..)
이하는 버튼에 관련된 CSS 파일이고 첨부파일은 버튼에 사용하는 이미지입니다
/* Button Common
----------------------------------------------------------------------------- */
.button,
.button * { position:relative; margin:0; padding:0; display:inline-block; text-decoration:none !important; border:0; font-size:12px; white-space:nowrap; background:url(../images/button.gif) no-repeat; vertical-align:top; overflow:visible; color:#333;}
.button { margin-right:4px; }
.button * { left:4px; cursor:pointer; _cursor:hand; }
.button.medium, .button.medium * { height:24px; line-height:21px; } /* 맑은고딕을 사용할 경우 21px, 돋움을 사용할 경우 24px 사용 */
.button.medium { background-position:left 0; }
.button.medium * { padding:0 10px 0 6px; font-size:12px; background-position:right top; }
/* Button Hover */
.button *:hover,
.button *:active,
.button *:focus { color:#06a; }
/* Button Icon Variation */
.button.icon * { padding-left:20px; }
.button.icon span { width:20px; margin-right:-20px; padding:0 !important; }
.button.medium .check { background-position:4px -150px; }
.button.medium .add { background-position:-16px -150px; }
.button.medium .delete { background-position:-34px -150px; }
.button.medium .calendar { background-position:-56px -150px; }
.button.medium .refresh { background-position:-76px -150px; }
.button.medium .download { background-position:-96px -151px; }
버튼을 여러개 만들고 싶으면 그냥 click (function) 여러개 복사하고, html 파일 내에서도 버튼 여러개 넣고
id만 바꿔주고 밑에 레이어도 저 문단 째로 여러개 복사해서 id만 바꿔쓰면 안되는건가요?
Jquery는 뭔가 간단해보이면서 꼭 이상하게 생각대로 안나와서 좀 어려운것 같습니다..;;
고수님들의 많은 질타 부탁드립니다 ㅠ
p.s
텀프로젝트가 기말고사 대용이라 JSP+Tomcat 으로 쇼핑몰을 만들고 있습니다
혹시 상품을 특정레이어에 Drag & Drop 할시 특정레이어에 추가되는, 즉, 장바구니를 Drag & Drop 으로 JSP로 구성하고 싶은데
Drag & Drop 관련 JSP 잘 설명된곳 아시는분 있으시면 URL만 좀 부탁드리고 싶습니다!
댓글 2
-
현원
2010.11.02 10:08
-
LuTics
2010.11.02 17:12
ㅎㅎ jsp 랑 관련없다는건 알고 있습니다 그냥 물어본것이지요 그리고 AJAX+ASP로 된 소스를 찾았기에 그걸 jsp 로 컨버트하신분이 있으신가 해서 써놓은거죠. 절대 무시한건 아닙니다 ㅋ -
LuTics
2010.11.02 17:15
아 참고로 제가 봤다는 소스는 책명 [프로개발자를 위한 AJAX 완전정복] p272 부터입니다 ㅎ -
ForHanbi
2010.11.02 14:22
위 jquery는
class="layer"를 작동사키기 위한 js입니다.
다른 div를 활용하고 싶다면
새로운 div를 만들고 그 div의 class명이나 id명을 붙혀서 그걸 fadeIn, fadeOut 시키도록 하면 될 듯 합니다.
-
LuTics
2010.11.02 17:13
아!!! 그렇군요 설명 듣고 보니 왠지 그런거 같네요 감사합니다. 제가 원하는 답변이네요 ㅋ
jsp랑 별로 상관 없는 내용입니다. jsp는 서버측 언어 대한 것 입니다. Drag&Drop 관련은 html5부터 나온 것입니다. 이전에 있던 것은 우회해서 해낸 것입니다. jquery는 자스 사용하는 방법을 간단하게 만들어 준 것일뿐 그 자체가 모든 걸 다 하는 것이 아닙니다. 아마도 구글가서 쳐보면 무진장 나올텐데요.. 웹하려하셨으면서 자스를 무시하신다는건 좀 어긋난거 같습니다.