M

오늘은 뭐 짜달라, 고쳐달라는 분도 안 계시고,

· 2012-07-08 (일) 01:17:31 · 4322 · 1
어제 다평정님을 위해 짜드렸던 드랍다운 예제에 jQuery 효과를 하나 넣어보도록 하겠습니다.

어제 예제는 마우스 오버 (hover) 시 하위메뉴가 펼쳐지는데, 이게 툭하고 나타나니 퉁명스럽죠.  이걸 부드럽게 나타내는 효과를 넣어 보도록 하겠습니다.

어제는 css 에서 display: none 으로 감춰져 있다가 마우스 오버시 (hover) 이 감춰진게 보여지도록 했는데, 여기에 css transition 효과를 넣으면, 이걸 부드럽게 나타다도록 보여지게 할수 있지만, 빌어먹을 IE 땜에, 이 효과를 IE 에서도 보여지게 해주려면 jQuery 를 사용하는 수 밖에 없습니다.

css 에 display: none 이 어떤 element 을 감춘다면 jQuery 에서는 이걸 .hide 로 표현합니다.
이런식으로 

$('ul').hide(); //ul 야, 넌 숨어있어 

그리고 어제는 css 에서 마우스 오버시 display: block 이렇게 해서 숨겨졌던걸 보여지게 했는데,

jQuery 에서는 이 숨겨진 element 를 이런식으로 

$('ul').show(); //ul 야, 이제 튀어나와 
합니다.

그런데 이걸 부드럽게 보여지게 하려면 .show 대신 .fadeIn, 과 .fadeOut, 혹은 .fadeTo 를 사용할 수 있습니다. (사실 animate 과 opacity 도 이용할 수 있고, 방법은 무궁무진 합니다.)

어제와 같이 html 마크업이 이렇다고 했을때

<ul id="drop">
    <li>
        공지사항
        <ul>
            <li>하위메뉴</li>    
        </ul>
    </li>
</ul>

1. 일단 jQuery 를 작성하려면 jQuery 를 불러와야죠.  이렇게.

2. 그리고 jQuery 명령문은 이런식이 되겠죠.
 
$('ul ul').hide(); //숨어있어
 $('ul#drop li').hover(function() { //마우스 오버하면
        $(this).children('ul').fadeIn(); //부드럽게 튀어나와
    }, function() {
        $(this).children('ul').fadeOut(); //부드럽게 들어가
    }); 

3. 그런데 이렇게 하면 다큐먼트가 준비되기전/윈도우가 로드되기전 (jQuery 를 어느 위치에 놓느냐에 따라) 먼저 fire 을 해버립니다.  그래서 document ready 나 window load 가 되면 작동해라, 라는 명령문으로 한번 더 감싸야 합니다. 이렇게.

 $(window).load(function(){  
.
jQuery 명령문
.
});

이러면 마우스 오버시 부드럽게 하위메뉴가 펼쳐지는 메뉴가 만들어 집니다. 끝.  무지 간단하죠?

아,  저 $ 싸인은 뭐냐구요?  $ 는 이건 jQuery 다라고 말해 주는 겁니다.  그러니까 $ = jQuery 입니다.

4.  jQuery 는 이렇게 생각보다 매우 쉽게 사용할 수 있고, 배우기가 아주 쉽습니다. toggle, animate, fade in 등의 명령어만 넣으면, 아코디언이니, 드랍다운 메뉴니, 기본적인건 뭐든 만들어 쓸수 있습니다.  디자이너라면 당연히 할수 있는 거고, 요구되는 것 입니다. (미국에서는)  

이런 간단한 걸 할줄 모르니 퍼블리셔라는 직업군도 한국에는 있는 것 같은데, 사실 제대로 된 디자이너라면 html, css, jQuery 는 손위에 올려놓고 갖고 놀수 있어야 합니다. 어려운게 아니니까요. 퍼블리셔라는 직업군은, 미국이나 다른 나라에는 존재하지 않는 직업군 입니다.

제가 이런말을 한다고, 배려가 없느니, 무례하느니, 왜 몇몇분들이 열폭을 하시는지 저는 이해불가이지만, 서로 의견이 다름을 인지하고, 상식이 통하는 게시판이 되었으면 합니다.

다평정님이 또 "안돼요" 라고 댓글을 올리실까 제가 이제 아주 노이로제가 걸려서, 그냥 ctrl +c, v 하실수 있게, 전문을 작성했습니다. ㅠㅠ


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>드랍다운</title>
<style>
li { 
list-style-type:none; 

</style>  
 
 

<script type="text/javascript">
$(window).load(function(){
$(function() {
   
   $('ul ul').hide(); //숨어있어
    $('ul#drop li').hover(function() {
        $(this).children('ul').fadeIn(); //부드럽게 튀어나와
    }, function() {
        $(this).children('ul').fadeOut(); //부드럽게 들어가
    });
       
    
    
});
});

</script>

</head>
<body>
  <ul id="drop">
    <li>
        공지사항
        <ul>
            <li>하위메뉴</li> 
        </ul>
    </li>
</ul>
  
</body>
</html>


/////

*다평정님, 이것만 돌리시면 IE 에서나 크롬에서나 분명히 작동됩니다.  작동이 안되는 경우는, 다평정님께서 집어넣으신 다른 javascript 부분에서의 오류 때문입니다. ㅠㅠ
|

댓글 1개

팁 감사합니다~ㅋㅋㅋㅠㅠ
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-08-29 조회 3,877
12-08-07 조회 3,552
12-08-03 조회 3,494
12-07-31 조회 3,608
12-07-30 조회 3,564
12-07-16 조회 3,763
12-07-15 조회 3,462
12-07-07 조회 3,456
12-07-06 조회 3,551
12-07-03 조회 3,620
12-06-29 조회 3,209
12-06-22 조회 3,577
12-06-17 조회 3,673
12-05-21 조회 3,756
12-05-02 조회 3,345
12-05-02 조회 4,136
12-05-02 조회 3,252
12-04-30 조회 3,377
12-04-30 조회 3,093
12-03-17 조회 3,892
12-03-10 조회 3,326
12-03-08 조회 3,736
12-03-03 조회 3,506
12-02-27 조회 4,916
12-02-17 조회 4,255
12-02-16 조회 4,404
12-02-03 조회 3,256
12-01-31 조회 2,992
12-01-24 조회 3,066
12-01-17 조회 3,813
12-01-05 조회 3,379
11-12-30 조회 2,990
11-12-23 조회 4,578
11-12-08 조회 3,300
11-12-07 조회 4,325
11-11-27 조회 3,758
11-11-25 조회 4,019
11-11-23 조회 3,428
11-11-22 조회 3,391
11-11-09 조회 3,169
11-10-23 조회 3,068
11-10-19 조회 3,046
11-10-08 조회 2,753
11-10-04 조회 2,770
11-10-04 조회 5,210
11-09-01 조회 4,267
11-08-13 조회 2,441
11-08-06 조회 3,131
11-07-11 조회 3,495
11-06-27 조회 2,898
11-06-21 조회 2,512
11-06-13 조회 2,349
11-06-07 조회 2,332
11-05-26 조회 2,337
11-04-20 조회 2,669
11-03-21 조회 2,761
11-03-18 조회 2,455
11-03-11 조회 2,482
11-02-07 조회 2,309
11-01-18 조회 2,636
11-01-12 조회 2,321
11-01-06 조회 2,474
10-12-10 조회 2,735
10-12-09 조회 2,376
10-12-08 조회 4,978
10-11-29 조회 2,471
10-11-28 조회 2,711
10-11-28 조회 2,539
10-11-19 조회 2,736
10-11-04 조회 2,663
10-10-21 조회 2,382
10-10-19 조회 3,331
10-10-12 조회 2,656
10-10-07 조회 2,442
10-09-30 조회 3,440
10-09-17 조회 3,837
10-09-17 조회 3,797
10-05-31 조회 3,460
09-12-31 조회 3,606
09-07-23 조회 4,898
08-09-16 조회 3,165
08-09-06 조회 2,885
08-09-04 조회 3,280
08-08-16 조회 4,362
08-08-15 조회 3,241
08-08-14 조회 4,454
08-08-12 조회 3,809
08-07-23 조회 2,740
08-07-10 조회 3,676
08-07-04 조회 2,907
08-06-27 조회 7,564
08-06-19 조회 4,849
08-05-27 조회 5,461
08-05-25 조회 5,288
08-05-23 조회 3,362
08-05-23 조회 4,462
08-05-21 조회 4,841
08-05-20 조회 4,006
08-05-20 조회 3,246
08-04-18 조회 4,237