2012-04-10 6 views
3

간단한 해결책이 있지만 Jquery 놈입니다. 도와주세요. 마우스 오버시 다른 DIV에 DIV를 표시하려면 어떻게합니까?JQuery는 DIV를 마우스 오버시 다른 DIV에 표시합니다.

예, 나는이 있습니다

<div class="box"> Info about a game </div> 

나는 "오버레이"사업부 "상자"

<div class="overlay"> Play </div> 

가 어떻게 JQuery와 함께 것을 할 수있는 다른 사업부를 원하십니까?

죄송합니다. 미리 감사드립니다.

답변

31

정확하게 이해하면 box 위로 마우스를 가져 가면 overlay 만 표시하려고합니다. 당신은/보여주기 위해 애니메이션/jQuery를 사용하는 것을 선호하는 경우 overlay 다음 사용할 수 있습니다 숨기기

<div class="box"> 
    Info about a game 
    <div class="overlay"> Play </div> 
</div>​ 

div.box div.overlay 
{ 
    display:none; 
} 

​div.box:hover div.overlay 
{ 
display:block; 
}​ 

http://jsfiddle.net/Curt/BC4eY/


:

당신은 CSS의 사이비 :hover를 사용할 수

$(function(){ 
    $(".box").hover(function(){ 
     $(this).find(".overlay").fadeIn(); 
    } 
        ,function(){ 
         $(this).find(".overlay").fadeOut(); 
        } 
        );   
});​ 

http://jsfiddle.net/Curt/BC4eY/2/

+0

가 네, 맞아요. 그러나 모든 브라우저와 호환됩니까? – DavidF

+0

@Splugged 대다수의 브라우저와 호환됩니다. http://www.quirksmode.org/css/contents.html – Curt

+0

@Splugged 제 편집을 봅니다. 애니메이션 jquery 버전도 제공했습니다. – Curt

3

원하는 위치에 '약'클래스가있는 다른 DIV 요소를 가질 수 있습니다. 그리고 CSS 스타일을가집니다 : opacity : 0; JS에서 다음

당신은 작은 스크립트를 작성해야, 온로드에서 같은/준비 기능, 어떤 위치 할 것이다 :이 요소 위에 뭔가를 오버레이됩니다

$(document).ready(function() { 
    $('div.box').hover(function() { 
    $(this).children('.overlay').fadeIn(); 
    }, function() { 
    $(this).children('.overlay').fadeOut(); 
    }); 
}); 

경우, 그것은 더 나은입니다 CSS 속성 'display : none'을 사용하여이 투명한 요소가 마우스 이벤트를 인계받는 것을 방지하십시오.

+0

페이지에 '상자'가 여러 개 있으면 작동하지 않습니다. 대신'$ (this)'를 사용하십시오. 내 대답보기 http://stackoverflow.com/a/10087695/370103 – Curt

+0

이것은 정확한 코드가 아니며 예를 들어 그것을 만드는 방법입니다. 사용자가 여러 개의 DIV 요소를 표시하거나 숨길 필요가있는 경우, 그 방법을 계속 유지합니다. 더 구체적인 것이 필요하다면 CLASS 대신 ID를 사용하여 jquery selector를 사용하여 개체를 선택하거나 더 구체적으로 선택할 수 있습니다. – moka

0

기본 JavaScript (jQuery 라이브러리 필요 없음)로 수행하는 방법이 있습니다. 당신이 ES6을 사용하지 않는 경우 당신은 정기적으로 오래된 function expressionsarrow functions을 대체 할 수

var box = document.getElementById("box"); 
 
var overlay = document.getElementById("overlay"); 
 

 
var init =() => { 
 
    overlay.style.display = 'none'; //hide by default when page is shown 
 

 
    box.addEventListener('mouseover',() => { 
 
    overlay.style.display = 'inline'; 
 
    }); 
 

 
    box.addEventListener('mouseout',() => { 
 
    overlay.style.display = 'none'; 
 
    }); 
 
}; 
 

 
init();
<div id="box"> Info about a game<br /> 
 
    <div id="overlay">Play</div> 
 
</div>

관련 문제