기초공사 (html,css,javascript)
hasClass / attr 본문
if문에서만 쓸수있고, toggleClass('open')이 있어야 함
hasClass('open') ==> open클래스를 보여줘라
html소스
$(function(){
var $aside = $('aside'),
$button = $aside.find('button'),
$duration = 300;
/*$button = $('aside button'); 이렇게 쓰면 시간오래걸림
이미 위에 변수를 지정해서 ..큰거부터찾고 find--find(자식..자식..)하는게 빠르다.*/
//버튼을 클릭하면 aside가 나오도록 해주세용
//자바스크릷트에서는 선택자.classList.add='open';
//css에서 aside느 left: -350px;
//제이쿼리에서는 클래스명 추가 선택자
//A.addClass('b c'); A.removeClass('b'); A toggleClass('b');
//A.hasClass('b')조건문에서만 사용. a요소에 b라는 클래스가 있으면 true,
//없으면 false
//속성변경하기, 속성의 값을 반환하기
//<img src="img/btn_open.png">에서 img는 속성(atturibute)값은 src이다
//A.attr('b') = a라는 요소의 b라는 속성의 값이 몬지 알아와서 변수명 c에 저장.
//button안에 img에 src라는 속성을 가져와서 콘솔에 찍어보자.
//vac c = A.attr('src');
//A.attr('src', 'c'); -->A의 속성 src를 c로 바꿔라
//<img src="images/logo.svg"의 속성을 logoshrink.svg로 바꾸고 다시 부활
console.log($button.find('img').attr('src'));
/*내가쓴 잘못 소스$aside.css({left:0 + 'px'});*/
$button.click(function(){
/*$aside.stop().animate({left:'0px'},$duration);이렇게말고 아래*/
/*$aside.addClass('open'); 아래*/
$aside.toggleClass('open'); --> 얘가 있어야 hasClass('open')이 실행되더라.
if($aside.hasClass('open')){
/*$aside.stop().animate({right:'-70px'},$duration,'easeOutBack');
이부분 주석처리하고 css에서도 이같은 효과낼수있다.
$aside에 open이라는 클래스가 있으면 right:-70px;
그 과정을 보여줘~애니메이션은 css에서 하는게 효과적이다. 제이쿼리에서는 hasClass('open')부분만 하는게 시간단축에 더좋다. css소스 아래.
*/
$button.find('img').attr('src','img/btn_close.png');
} else {
//$aside.stop().animate({right:'-350px'},$duration,'easeInBack');
$button.find('img').attr('src','img/btn_open.png');
}
});
});
//css소스
'jquery' 카테고리의 다른 글
tab기능-attr,hide,show (0) | 2023.02.17 |
---|---|
16_shrink / attr / swtch (0) | 2023.02.09 |
mouseover시 위치변동 (0) | 2023.02.03 |
6_image클릭시 each반복문 / for반복문 (0) | 2023.01.30 |
animate_find / filter (0) | 2023.01.29 |