2026, 새로운 도약을 시작합니다.

j-query) resize와 if문을 이용해서 hover기능을 구현하고자합니다.

안녕하세요

윈도우 창 outerWidth 값에 따라 작동되는 hover를 만들고자 다음과 같이 코드를 작성했습니다.

// 1번
if($(window).outerWidth()>1023){
functionlistMoreAdd(){
    console.log("작동1");
$(this).append("<div class='listMore'>자세히 보러가기 ><div>");
$(".listMore").css({"width":$(this).width()});
};
functionlistMoreRemove(){
$(".listMore").remove();
};
$("section:not(#showroom) .w1200 ul li a").hover(listMoreAdd, listMoreRemove);
}
// 2번
$(window).on("resize",function(){
if($(window).outerWidth()>1023){
functionlistMoreAdd(){
        console.log("작동2");
$(this).append("<div class='listMore'>자세히 보러가기 ><div>");
$(".listMore").css({"width":$(this).width()});
};
functionlistMoreRemove(){
$(".listMore").remove();
};
$("section:not(#showroom) .w1200 ul li a").hover(listMoreAdd, listMoreRemove);
}else{
      console.log("멈춤");
}
}
);

다음과 같이 작성을 하였고 간단히 설명드리면

특정 태그에 호버시 outerWidth값에 따라 div를 생성하는 function과 마우스가 벗어났을 대 그 div를 제거하는 function을 만들었습니다.

그런데 이게 좀 제 의도대로 작동하지 않습니다.

먼저 1번은 브라우저가 켜지자마자 너비값을 비교하여 작동하는 함수, 2번은 사이즈가 조정되었을 때 작동하는 함수라고 하겠습니다. 위 코드 부분에 각 1번과 2번이라고 적어놨습니다.

1. 브라우저가 켜졌을 때 너비가 1024이상일 때

1) 특정태그에 호버시 1번이 작동을 합니다. 이는 콘솔창에 작동1일 찍히는 걸 확인했습니다.

2) 너비를 1023밑으로 조절하면 2번이 작동하여 콘솔창에 멈춤이 찍히는 걸 확인했습니다.

3) 그런데 다시 특정태그에 호버하면 2번의 작동2가 콘솔이 찍히는게 아니라 1번의 작동1이 찍힙니다.

2.브라우저가 켜졌을 때 너비가 1023이하일때

1) 특정태그에 호버시 아무것도 작동하지 않음을 확인했습니다.

2) 너비를 1024이상으로 조절 후 특정태그에 호버하면 2번의 작동2가 콘솔창에 찍히는 걸 확인했습니다.

3) 너비를 다시 1023으로 낮추었을 때 2번의 멈춤이 콘솔에 찍히는 걸 확인했습니다.

4) 다시 호버를 해보면 2번의 작동2가 콘솔에 찍히는 걸 확인했습니다.

제가 의도한 대로라면 1024일때 호버시 1번이 작동을 하다가 1023이하가 되면 호버시 아무것도 작동이 되지않아야 하는데 어디가 잘못된건지 잘 모르겠습니다. 해결방법에 대한 조언 부탁드리겠습니다.

답변 1개

호버의 의미를 아시고 한거죠? 마우스 커서를 해당 Div에 위에 올리면 반응하는거잖아요

근데 왜 브라우저 사이즈를 1023일때 반응하게 하는건가요?

일단 마우스 호버가 아니라 마우스 이벤트 부터 찾아보세요

https://www.nextree.co.kr/p10008/

잘못 접근한것 같네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고