호버링 할 때 위/아래 슬라이드 효과를 만들기 위해 jQuery 스 니프가 있습니다. http://jsfiddle.net/jPneT/1/중복 jQuery 코드를 개선하는 방법
지금 내가 그런 탐색이 : 나는이 바이올린으로 만들어
$(document).ready(function(){
var height = $(".nav ul li").height();
$('li:nth-child(5n+1)').mouseover(function(){
$('li:nth-child(5n+1) .default').stop().animate({
height: 0
}, height);
}).mouseout(function(){
$('li:nth-child(5n+1) .default').stop().animate({
height: height
}, height)
});
$('li:nth-child(5n+2)').mouseover(function(){
$('li:nth-child(5n+2) .default').stop().animate({
height: 0
}, height);
}).mouseout(function(){
$('li:nth-child(5n+2) .default').stop().animate({
height: height
}, height)
});
$('li:nth-child(5n+2)').mouseover(function(){
$('li:nth-child(5n+2) .default').stop().animate({
height: 0
}, height);
}).mouseout(function(){
$('li:nth-child(5n+2) .default').stop().animate({
height: height
}, height)
});
$('li:nth-child(5n+2)').mouseover(function(){
$('li:nth-child(5n+2) .default').stop().animate({
height: 0
}, height);
}).mouseout(function(){
$('li:nth-child(5n+1) .default').stop().animate({
height: height
}, height)
});
$('li:nth-child(5n+1)').mouseover(function(){
$('li:nth-child(5n+1) .default').stop().animate({
height: 0
}, height);
}).mouseout(function(){
$('li:nth-child(5n+1) .default').stop().animate({
height: height
}, height)
});
});
:
<nav id="menu" class="nav">
<ul>
<li>
<a href="#">
<div class="slide default">
<span>About</span>
</div>
<div class="slide onhover">
<span>About</span>
</div>
</a>
</li>
<li>
<a href="#">
<div class="slide default">
<span>Photography</span>
</div>
<div class="slide onhover">
<span>Photography</span>
</div>
</a>
</li>
<li>
<a href="#">
<div class="slide default">
<span>Home</span>
</div>
<div class="slide onhover">
<span>Home</span>
</div>
</a>
</li>
<li>
<a href="#">
<div class="slide default">
<span>Webdesign</span>
</div>
<div class="slide onhover">
<span>Webdesign</span>
</div>
</a>
</li>
<li>
<a href="#">
<div class="slide default">
<span>Linkbase</span>
</div>
<div class="slide onhover">
<span>Linkbase</span>
</div>
</a>
</li>
</ul>
</nav>
가 바이올린에서 효과를 추가하려면를, 그와 같은 jQuery를 부분을 생성 그것은 잘 작동합니다. 그러나 jQuery 코드는 중복되고 길다. 그러나 그것을 더 작게 만들기 위해 개선 할 생각은 없습니다. 이 전환을 위해 jQuery를해야하므로
이 솔루션은
당신에게 몇 가지 아이디어를 가지고 ... 오래된 브라우저와 호환되어야 하는가?
CSS에는': hover' 의사 선택자가 있습니다. http://stackoverflow.com/questions/905033/how-to-use-hover-in-css –
또한 CSS3에서'transition '을 사용할 수 있습니다. 순수 CSS를 사용할 수있을 때 jQuery를 사용해야하는 이유가 있습니까? –
@JaredEitnier 이것은 이전 브라우저와의 하위 호환 가능성이 있습니다. – SeinopSys