2013-08-28 33 views
5

Tôi không chắc chắn nếu nó có thể, nhưng đây là những gì tôi đã làm:Áp dụng hiệu ứng chuyển tiếp trên: hover không: hoạt động

a { 
    background-color: white; 
    transition: all 1s; 
} 

a:hover { 
    background-color: grey; 
} 

a:active { 
    background-color: black; 
} 

Nhưng tôi muốn các hiệu ứng chuyển tiếp không áp dụng trên: hoạt động (chỉ trên the: hover), tôi đã thử điều này:

a { 
    background-color: white; 
} 

a:hover { 
    background-color: grey; 
    transition: all 1s; 
} 

a:active { 
    background-color: black; 
} 

Và kết quả chính xác như nhau (ngoại trừ hiệu ứng không được đảo ngược). Có thể làm điều đó trong CSS đầy đủ.

Cảm ơn!

+0

tôi chỉ có thể nghĩ đến việc áp dụng việc chuyển đổi sang 'a: không (: hoạt động) ', nhưng sau đó những gì sẽ xảy ra khi quá trình chuyển đổi yếu tố từ ': active' sang': hover' sau khi bạn nhả chuột trong khi vẫn di chuột qua phần tử? – BoltClock

+0

Vâng, đó là giải pháp. Sau khi ': active' nó đơn giản quay trở lại trạng thái': hover' (ngay lập tức). Nhưng đó là những gì chúng ta muốn với ': active', chỉ để xem sự kiện click. Cảm ơn – Cohars

+0

Vấn đề là nó hoạt hình trở lại ': hover' thay vì thay đổi ngay lập tức, bởi vì quá trình chuyển đổi được xác định cho ': hover' (hãy nhớ rằng chúng ta đang nói về trạng thái, chứ không phải sự kiện, trong CSS). Nếu điều đó không quan trọng với bạn, thì tôi sẽ đăng câu trả lời. – BoltClock

Trả lời

4
a { 
    background-color: white; 
    transition: all 1s; 
} 

a:hover { 
    background-color: grey; 
} 

a:active { 
    background-color: black; 
    transition: none; 
} 

đánh dấu:

<menu type=list> 
    <li><a>home</a></li> 
    <li><a>work</a></li> 
    <li><a>contact</a></li> 
    <li><a>about</a></li> 
</menu> 

demo: http://jsfiddle.net/7nwLF/

+0

Những 'quan trọng' không cần thiết. – BoltClock

+0

true nhưng nó chỉ vì lý do an ninh –

+0

Vâng, đó là khá đơn giản. Cảm ơn nhiều! Điều đó cho phép chuyển đổi từ ': active' sang': hover'states, tạo nên hiệu ứng đẹp mắt! – Cohars