본문 바로가기

웹언어/jQuery

[jQuery강좌] 9강 제이쿼리 CSS 조작 메서드 - 오쌤의 니가스터디

728x90
반응형

 

 

 

 

 

 

 

 

 

1. 제이쿼리 CSS 조작메서드 종류

- 제이쿼리는 CSS 조작을 위한 몇가지 방법이 있습니다. 표로 정리해보도록 하겠습니다.

메서드명 메서드사용법 설명
addClass() $('문서객체선택').addClass('클래스명'); 문서객체에 매개변수 클래스를 추가하는 메서드
removeClass() $('문서객체선택').removeClass('클래스명'); 문서객체에 매개변수 클래스를 제거하는 메서드
toggleClass() $('문서객체선택').toggleClass('클래스명'); 문서객체에 매개변수 클래스를 추가/제거를 번갈아 실행하는 메서드
css() $('문서객체선택').css('css속성명',값); 문서객체 CSS를 컨트롤하는 메서드

- 뒤에 Class가 붙은 메서드들은 전부 매개변수가 한개입니다. 해당 클래스명을 작성합니다. 이때 주의사항은 앞에 [.]을 붙이지 않는다는 것입니다.

- css() 메서드는 문법이 많은 메서드입니다. 하단부분에서 자세히 설명하도록 하겠습니다.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. addClass()와 removeClass() 메서드

addClass() 메서드와  removeClass() 메서드는 같이 해보도록 하겠습니다.

- 이번에는 문서객체에 마우스를 올리면 클래스가 추가되고, 마우스를 내리면 클래스가 제거되게 할겁니다.

- 그래서 이벤트 관련 메서드인  hover() 메서드 문법을 먼저 보고 가겠습니다.

 

 

## hover() 메서드문법

$('문서객체선택').hover(콜백함수,콜백함수);

$('문서객체선택').hover(function(){},funciton(){});

hover() 메서드는 매개변수로 콜백함수를 두개를 갖습니다.

- 이 메서드는 마우스를 올렸을때 명령과 마우스를 내렸을때 명령을 한번에 처리해줍니다.

- 그래서 첫번째 콜백함수는 마우스를 올렸을때의 명령을 담고, 두번째 콜백함수는 마우스를 내렸을때의 명령을 담습니다.

 

 

## 코드 보기

- 아래 코드는  <h1> 태그를 세개 작성하고, 마우스를 올렸을때는 [ .active ]클래스를 추가하고, 마우스를 내렸을 때는 [ .active ]클래스를 제거해보도록 하겠습니다.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>제이쿼리 - CSS조작 메서드</title>
        <style>
            .active{
                background-color: black;
                color: yellow;
            }
        </style>
        <script src="jquery-1.12.4.min.js"></script>
        <script>
            $(document).ready(function(){
                $('h1').hover(function(){
                    $(this).addClass('active');
                },function(){
                    $(this).removeClass('active');
                });
            });
        </script>
    </head>
    <body>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
    </body>
</html>

- [ .active ]클래스는 CSS에서 배경색은 검정색으로, 글자색은 노란색으로 처리해봤습니다.

- 이때  hover() 메서드의 콜백함수에  $(this) 라는 코드가 있습니다.

- 자바스크립트에서의  this 키워드는 객체가 자신의 코드블록 내부에서 자신을 호출할 때 사용합니다.

- 그걸 제이쿼리에서도 쓰는데 대신 $() 내부에 작성합니다.

- 이때의  this 는 이벤트받는 대상을 의미합니다.

$(this) 파트에  $('h1') 이라고 쓰면 맨 첫번째  <h1> 태그에만 마우스를 올려도 전부 색상이 변경되는 오류가 발생되기 때문입니다.

 

 

 

## 결과보기

- 마우스를 올리면 배경색이 검정색/글자색이 흰색으로 변하고, 마우스를 내리면 원래 상태로 돌아오는 것이 확인됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

 

 

 

 

 

 

 

 

 

 

 

 

3. toggleClass() 메서드

toggleClass() 메서드는  addClass() 와  removeClass() 를 번갈아 실행해주는 메서드입니다. 

- 위에서는 이벤트가 [ 1. 마우스올렸을때 ], [ 2. 마우스내렸을때]로 두개가 있어서 각각의 메서드를 각각 실행했지만, 이벤트가 하나라면 불가능합니다. 그래서  toggleClass() 메서드가 있는 겁니다.

- 컴퓨터에서 토글(toggle)이라고 부르는 것은 버튼이나 키가 두가지 기능을 번갈아 쓸 때 토글이라고 부릅니다.

- 키보드를 예시를 보자면 [한영키], [CapsLock키]같은 것들입니다. [한영키]는 한번누르면 영문, 또 누르면 한글 나오죠? 이런식으로 기능을 번갈아 쓰는 것을 토글이라고 합니다. 

- 그래서 제이쿼리에서  toggleClass() 라는 명칭을 붙인 겁니다.

 

 

## 코드 보기

- 아래 코드는  <h1> 태그를 세개 작성하고, 한번 클릭하면 [ .active ]클래스를 추가하고 , 또 한번 클릭하면 [ .active ]클래스를 제거하게 명령을 주겠습니다.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>제이쿼리 - CSS조작 메서드</title>
        <style>
            .active{
                background-color: black;
                color: yellow;
            }
        </style>
        <script src="jquery-1.12.4.min.js"></script>
        <script>
            $(document).ready(function(){
                $('h1').click(function(){
                    $(this).toggleClass('active');
                });
            });
        </script>
    </head>
    <body>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
    </body>
</html>

click() 메서드를 통해 클릭이벤트를 구현했습니다. 

- 이때도  $(this) 키워드는 클릭 이벤트를 받는 문서객체라고 생각하시면 됩니다.

 

 

## 결과보기

- 각각의 태그가 한번 클릭하면 배경색 검정색/글자색 흰색으로 변하고, 다시 클릭하면 원래 상태로 돌아오는 것을 확인할 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. css() 메서드

css() 메서드는 문서객체의 스타일을 컨트롤 하는 메서드입니다.

- 그래서 게터(getOO)와 세터(setOO)로 나뉘어 있고 다양한 문법이 있는 메서드입니다.

 

 

 

 

1) 매개변수가 한개인 유형

- css메서드는 매개변수가 한개인 것이 게터인 유형입니다.

- css는 스타일을 컨트롤하는 메서드이기 때문에 다양한 css속성을 갖고 있기 때문입니다.

- 게터는 배열된 객체인 경우는 첫번째 요소의 값을 가져옵니다.

 

## 문법

$('선택자').css('CSS속성명');

 

 

## 코드 예시

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>제이쿼리 - 메서드 문법</title>
        <script src="jquery-1.12.4.min.js"></script>
        <script>
            $(document).ready(function(){
                var color = $('h1').css('color');

                alert(color);
            });
        </script>
    </head>
    <body>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
    </body>
</html>

 

 

## 코드 결과

- 검정색으로 잘 반환되는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

2) 매개변수가 두개인 유형

- css메서드는 매개변수가 두개인 것이 세터인 유형입니다.

- CSS속성 한개를 바꿉니다.

 

## 문법

$('선택자').css('CSS속성명',값);

- 값은 숫자일수도 문자일수도 있어서 따옴표처리하지 않았습니다.

 

 

## 코드 예시

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>제이쿼리 - 메서드 문법</title>
        <script src="jquery-1.12.4.min.js"></script>
        <script>
            $(document).ready(function(){
                $('h1').css('color','red');
            });
        </script>
    </head>
    <body>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
    </body>
</html>

 

 

## 코드 결과

 

 

 

 

 

 

 

 

 

 

 

 

3) 매개변수가 객체인 유형

- css메서드는 CSS속성을 컨트롤하기 때문에 여러 개의 CSS속성을 바꿀 수도 있습니다.

- 그래서 객체방식을 사용해서, 글자색은 무엇으로 변경, 배경색은 무엇으로 변경, 이런식으로 변경해줘야합니다.

 

## 문법

$('선택자').css({
	CSS속성명: 값,
        CSS속성명: 값
})

 

 

## 코드 예시

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>제이쿼리 - 메서드 문법</title>
        <script src="jquery-1.12.4.min.js"></script>
        <script>
            $(document).ready(function(){
                $('h1').css({
                    backgroundColor: 'black',
                    color: 'yellow'
                });
            });
        </script>
    </head>
    <body>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
    </body>
</html>

- 배경색은 검정색으로, 글자색은 노란색으로 변경했습니다. 

 

 

 

## 코드 결과

 

 

 

 

 

 

 

 

 

 

 

 

4) 매개변수가 함수인 유형

- 문서객체가 배열(나열)되어 있을때 각각의 CSS속성을 다르게 주고 싶을 때 사용합니다. 

 

## 문법

$('선택자').css('CSS속성명',function(index){
	//반환값 지정
});

- 콜백함수의 [ index ]라는 매개변수는 문서객체의 배열번호를 의미합니다. 이때 영문은 무엇이든 상관없습니다. 첫번째 작성된 매개변수는 무조건 배열번호를 의미합니다.

 

 

 

 

## 코드 예시

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>제이쿼리 - 메서드 문법</title>
        <script src="jquery-1.12.4.min.js"></script>
        <script>
            $(document).ready(function(){
                $('h1').css('fontSize',function(index){
                    return (index + 1) * 10; 
                });
            });
        </script>
    </head>
    <body>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
    </body>
</html>

- index번호는 0번부터 시작하기 때문에 더하기 1을 해주었습니다.

- 차례대로 10px, 20px, 30px로 글자크기를 지정하기 위해서 입니다.

 

 

 

## 코드 결과

- 차례대로 커진 것을 확인할 수 있습니다. 

 

 

 

 

 

 

 

 

 

5) 매개변수가 객체와 함수를 같이 사용하는 유형

- 속성도 여러개 변경하고 싶고, 배열된 것을 다르게 적용하고 싶을 때 사용하면 됩니다.

 

## 문법

$('선택자').css({
	CSS속성명1: 값,
    CSS속성명2: function(index){
    	//반환할 값
    }
}

 

 

 

## 코드 예시

- 이번에는 배경색은 모두 검정색, 글자색은 각각 빨강, 녹색, 파랑으로 지정해보겠습니다. 

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>제이쿼리 - 메서드 문법</title>
        <script src="jquery-1.12.4.min.js"></script>
        <script>
            $(document).ready(function(){
                var c = ['red','green','blue'];

                $('h1').css({
                    backgroundColor: 'black',
                    color: function(index){
                        return c[index];
                    }
                });
            });
        </script>
    </head>
    <body>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
        <h1>제목태그</h1>
    </body>
</html>

 

 

## 코드 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형