2011-09-09 41 views
10

Tôi muốn áp dụng trạng thái di chuột từ xa, bằng cách di chuột qua một đối tượng khác. Nhưng tôi muốn đặt tên cho đối tượng có kích hoạt di chuột của nó chứ không phải là do mối quan hệ DOM với mục được di chuột qua.Cách áp dụng: di chuột đến một phần tử

<style> 
img:hover {border: thin red solid;} 
</style> 

<li id="hover-over-me">Dogs</li> 
<img src="dog.jpg" /> 

Tôi chưa tìm thấy phương pháp javascript hoặc jquery cho phép bạn áp dụng hiệu ứng giả giả trên một phần tử từ xa (tức là độc lập với phần tử thực sự bị di chuột). Có cách nào để làm việc này không?

Trả lời

1

Nếu bạn có ý nghĩa đặc biệt là pseudo selector CSS :hover, sau đó một yếu tố chỉ có thể kích hoạt nó trên một chừng mực một mối quan hệ có thể được thành lập trong CSS:

http://jsfiddle.net/tFSWt/

ví dụ như anh chị em:

<span>Sibling </span><img src = "http://dummyimage.com/120x90/f00/fff.png&text=my+image" /> 

img:hover { border: 2px dashed blue; } 
span:hover + img { border: 2px dashed blue; } 

dụ như tổ tiên/hậu duệ:

<span>Parent 
    <img src = "http://dummyimage.com/120x90/f00/fff.png&text=my+image" /> 
</span> 

img:hover { border: 2px dashed blue; } 
span:hover img { border: 2px dashed blue; } 

Nếu không, bạn sẽ cần phải dựa vào hoạt Javascript để chọn các yếu tố liên quan và thiết lập các phong cách trên hoặc bằng kiểu nội tuyến, hoặc bằng cách thêm một lớp cung cấp phong cách phù hợp.

+2

vì vậy tôi đoán câu trả lời ngắn cho q của tôi là 'bạn không thể'? : p – Damon

+0

@Damon: Nếu bạn muốn kích hoạt công cụ chọn giả CSS: hover hover của JavaScript, thì thật không may, bạn không thể. Nhưng bạn * có thể * định nghĩa các trình xử lý cho các sự kiện chuột trong JavaScript và kích hoạt chúng. – user113716

+0

vâng .. đó là ý tôi. Tôi biết về việc thêm/xóa các lớp, nhưng hy vọng tôi có thể làm điều đó một cách đơn giản hơn. – Damon

3

http://sandbox.phpcode.eu/g/3304b

<style> 
img:hover,img.hovered {border: 5px red solid;} 
</style> 
<ul> 
    <li id="hover-over-me">Dogs</li> 
</ul> 
<img src="http://4.bp.blogspot.com/_7VyEDKFMA2U/TOX9ZL7KRPI/AAAAAAAAACM/-XSoYjePBPk/s1600/cute-puppy-dog-wallpapers.jpg" /> 
<script> 
$("li").mouseenter(function(){ 
    $("img").addClass('hovered'); 
}); 

$("li").mouseout(function(){ 
    $("img").removeClass('hovered'); 
}); 


</script> 
+2

Điều này sẽ không hoạt động: http://jsfiddle.net/ekqCC/1/ –

+3

Điều đó có nghĩa là * không * kích hoạt tính năng di chuột qua CSS. – user113716

+2

Tại sao mọi người thậm chí bỏ phiếu điều này? –

Các vấn đề liên quan