2016-10-24 12 views
0

그림이있는 상자에 mouseovermouseout이라는 링크를 표시하려고합니다. 배열을 시도했지만 그 결과를 얻을 수 없었습니다. 그리고 이것은 제가 가지고있는 코드입니다 (배열과 같은 결과를줍니다).링크를 가져 왔을 때 사진을 표시하는 방법 (mouseover/mouseout)?

나는 보여줄 이미지를 얻지 만, 나는 모든 링크에 대해서만 첫 번째 것을 얻는다. 나는 배열을 사용할 때 같은 결과를 얻었지만 (모든 링크는 사진을 보여 주지만 첫 번째 사진 만 보여줍니다.) 올바른 그림을 올바른 링크로 연결하지 못했습니다.

누군가 나를 도와 줄 수 있습니까?

<p id="lankar"><a href="#" alt="site1" />Link 1</p> 
<p id="link" class="hide"><img src="img/bild1.jpg"></p> 

<p id="lankar1"><a href="#" alt="site2" />Link 2</p> 
<p id="link1" class="hide"><img src="img/bild2.jpg"></p> 

<p id="lankar2"><a href="#" alt="site3" />link 3</p> 
<p id="link2" class="hide"><img src="img/bild3.jpg"></p> 

<script> 
var links = document.getElementById('lankar'); 
links.addEventListener("mouseover", showBox); 
links.addEventListener("mouseout", hideBox); 
var links1 = document.getElementById('lankar1'); 
links1.addEventListener("mouseover", showBox); 
links1.addEventListener("mouseout", hideBox); 
var links2 = document.getElementById('lankar2'); 
links2.addEventListener("mouseover", showBox); 
links2.addEventListener("mouseout", hideBox); 

function showBox() { 
if(document.getElementById('lankar')) 
document.getElementById('link').style.display = 'block'; 
else if(document.getElementById('lankar1')) 
document.getElementById('link1').style.display = 'block'; 
else if(document.getElementById('lankar2')) 
document.getElementById('link2').style.display = 'block'; 
} 


function hideBox() { 
if(document.getElementById('lankar')) 
document.getElementById('link').style.display = 'none'; 
else if(document.getElementById('lankar1')) 
document.getElementById('link1').style.display = 'none'; 
else if(document.getElementById('lankar2')) 
document.getElementById('link2').style.display = 'none'; 
} 
</script> 
+3

사용 CSS는': 당신의'/ else' 블록의 경우 첫'if'에서 – LGSon

+0

을 hover' 조건은 * always * true입니다. 당신은 기본적으로 그 id에 의한 요소가 존재 하는지를 검사하고 있으며, 항상 그것을합니다. – David

답변

0

사용 CSS :hover ... 드롭 몇 마크 업의

.lankar { 
 
    display: block 
 
} 
 
.hide { 
 
    display: none; 
 
} 
 
.lankar:hover + .hide, .hide:hover { 
 
    display: block; 
 
}
<a class="lankar" href="#" alt="site1">Link 1</a> 
 
<img class="hide" src="http://placehold.it/150x100/00f"> 
 

 
<a class="lankar" href="#" alt="site1">Link 2</a> 
 
<img class="hide" src="http://placehold.it/150x100/0f0"> 
 

 
<a class="lankar" href="#" alt="site1">Link 3</a> 
 
<img class="hide" src="http://placehold.it/150x100/f00">

+0

감사! 그것은 실제로 내가 기대했던 것보다 훨씬 낫다! 나는 분명히 왜 그렇게 어려운 일을 만들어야하는지 알지 못한다. 바라기를 나는 내가 더 잘할 때 배울 것이다. ;) – Isla

+0

@Isla 예. 그러면 ... 볼 수 있듯이, 나는 해냈다. :) – LGSon