2014-11-26 4 views
0

나는 그렇게 간단한 질문이 있습니다. 나는 4 열을 가진 테이블을 가지고 있으며 각 테이블에는 차례로 <img>이 들어있는 태그가 있습니다. 내가 mouseover 때 img의 src를 변경할 수있는 CSS 또는 javascript에서 방법을 찾고있다.호버상의 이미지 src 변경하기

그래서 예를 들어, 행의 한 지금과 같습니다

<td><a href="http://link1/"><img alt="Link1" src="http://images/Link1.png/" /></a></td> 

내가 현재 가지고있는 CSS 것은 :

img[alt="Link1"]:hover { 
    content:url("http://Link1Pressed.png"); 
} 

지금이 그것을해야으로 아름답게 작동 크롬에 있지만 파이어 폭스와 IE에서는 마우스 오버에 아무런 변화가 없다. 이것을 바로 잡기 위해 무엇을 할 수 있을까? 이름이 모두 종래와 같이 40 개의 버튼에 대해이 작업을 수행하는 더 좋은 방법이 있습니까? IE의 링크는 alt의 소문자 버전이며 이미지 src의 .png 비트와 같습니다. 차례로 img src 위에 마우스를 올리면 동일하지만 img src 위로 마우스를 가져 가면 .

도움을 주시면 감사하겠습니다. 감사합니다

+0

당신 : 당신은 a 또는 td에 그것을 배경 이미지를 만들고 그런 식으로 변경하거나의 jQuery 같은 기능을 사용하려면 다음 중 하나를해야합니다 ': hover'에'content' 지시자를 적용 할 수 없습니다. Chrome에서 제대로 작동합니까? – haim770

+2

'a' 태그를 적절한 너비와 높이로 설정 한 다음 이미지를 암시 적'img' 태그 대신 CSS 배경으로 설정할 수 있습니까? 그런 식으로 CSS ': hover' 상태를 다른 이미지로 설정할 수 있습니다. – Wil

+0

감사합니다. Wil, 나는 그것이 일반적인 합의라고 생각합니다. haim770 - 확실히 Chrome에서 작동합니다 (Safari에서도 가능). 호버에 올려 놓지 않으면 콘텐츠를 사용할 때와 혼동 스럽지만 두꺼운 경우가 있습니다. –

답변

1

에만 작동 : 대신, background-imagediv A의 사용합니다.

$('a').on('mouseover', function() { 
    $(this).find('img').attr('src', 'path/to/my/image.png'); 
}); 

또는 기본 자바 스크립트

document.querySelectorAll('a img[alt=Link1]').addEventListener('mouseover', function() { 
    this.src = 'path/to/my/image.png'; 
}); 
+0

사실. 그러나 당신은 아마 선택자로서'img [alt = "Link1"]'을 의미했을 것입니다. – haim770

+0

@ haim770 - 'alt' 태그와 같이 무언가를 임의로 선택하려면 왜 대신'src'를 사용합니까? 이것은 단지 예일뿐입니다. 선택자는 원하는 특유의 요소만을 선택하기 위해 적절한 특이성을 가지고 사용될 필요가 있습니다. 나는 그것이 주어진 것이기를 바란다. 필요하다고 생각하면 그 사실에 대한 답변을 업데이트 할 것입니다. –

+0

동의합니다. 그러나 OP가 사용한 원래 CSS 선택 도구입니다. – haim770

1

content 속성은 의사 요소에만 적용 할 수 있습니다. 이 의사 요소의 경우 솔루션은 귀하의 질문에 설명 그건

div[alt="Link1"]{ 
    background-image: url("http://images/Link1.png"); 
} 
div[alt="Link1"]:hover { 
    background-image: url("http://Link1Pressed.png"); 
} 
+1

'img' 태그에'background-image'를 사용하는 것은 어색하게 의미가 있으며'src' 태그를 제거해야 작동 할 수 있습니다. 나는'block' 또는'inline-block' 엘리먼트에서 이것을 보게 될 것이다. –

+0

질문 하나만해도 div를 추가하는 대신에 elemnt로 이것을 수행 할 수 있습니까? 나는 그 게으른이다! –

+0

@DanielCasserly 예, 'alt'를 적용하거나 다른 작업 선택기가있는 경우. – Mooseman