2012-09-12 1 views
0

자동 회전하는 탐색 기능이 포함 된 jquery 배너 사이클이 있습니다. 탐색은 활성 슬라이드 activeSlide의 LI 클래스 갖는리스트에 설정되어 특정 클래스의 jquery로 CSS를 강제 실행

JQUERY 설정

<ul id="billboard-nav"> 
    <li class="activeSlide"><span class="overlay">NAV1</span></li> 
    <li><span class="overlay">NAV2</span></li> 
    <li><span class="overlay">NAV3</span></li> 
</ul> 
너무 불투명 0 .overlay이며, 마우스 오버시에, 그 불투명도를 변경 1.

<script> 
$(function() { 

    $("#billboard-nav li .overlay").css({ opacity: 0 }); 

    $("#billboard-nav li").hover(
     function() {$(this).children('.overlay').stop().animate({"opacity": "1"}, 100);}, 
     function() {$(this).children('.overlay').stop().animate({"opacity": "0"}, 1200);} 
    ); 

}); 
</script> 

불투명도를 유지하려면 .activeSlide .overlay가 필요하다는 점을 제외하고는 잘 작동합니다. 1. 스타일 시트를 통해 불투명도 : 1! 중요도를 설정할 수 있지만 CSS3이며 ie7,8에서는 지원되지 않습니다. JS 솔루션이 훨씬 더 선호 될 것입니다.

도움을 주시면 감사하겠습니다. 고맙습니다. 리튬은 선하기 전에 각 기능에이를 넣어 클래스 activeSlide가 포함되어있는 경우

+0

설정을 중요한 CSS3하지 않습니다!. IE 사용자 필터 및 -ms-filter의 불투명도는 –

+0

입니다. 더 많은 정보는 여기에 : http://www.quirksmode.org/css/opacity.html –

답변

0

는 그냥 조건을 추가하고 확인 현재의 경우 li에는 activeSlide 클래스가 있습니다. 그렇다면 아무 작업도 수행하지 마십시오.

$(function() { 

    $("#billboard-nav li .overlay").css({ 
     opacity: 0 
    }); 

    $("#billboard-nav li").hover(

    function() { 
     $(this).children('.overlay').stop().animate({ 
      "opacity": "1" 
     }, 100); 
    }, function() { 
     if ($(this).hasClass('activeSlide')) { 
      // Because this has ActiveSlide class do nothing 
     } 
     else { 

      $(this).children('.overlay').stop().animate({ 
       "opacity": "0" 
      }, 1200); 
     } 
     }); 

    });​ 

check,363,210 여기

+0

이것은 나를 위해 작동 하나 슬라이드가 변경되면 activeSlide 클래스를 가진 이전 LI는 여전히 불투명 한 상태를 유지합니다. – user1521516

1

또 다른 선택은 당신이

if(!$(this).attr("class") || $(this).attr("class")!="activeSlide" 

이 첫 번째 질문 :

$("#billboard-nav li").no(".activeSlide").hover(
     function() {$(this).children('.overlay').stop().animate({"opacity": "1"}, 100);}, 
     function() {$(this).children('.overlay').stop().animate({"opacity": "0"}, 1200);} 
    ); 
0

이 시도 :

$('#billboard-nav li').hover(function() { 
    if ($('this').hasClass('activeSlide')) { 

    } 
    else { 
     function() {$(this).children('.overlay').stop().animate({"opacity": "0"}, 1200);} 
    ); 
    } 
}); 
+0

농담 : 그들은이 경우에 대해서도 Not 연산자 '!'를 만들었습니다. ;) – rcdmk

+0

고마워요. 보통은 사용하지 않습니다. 누출량은 수정해야합니다. –

관련 문제