2012-04-05 2 views
0

jCarousel Lite를 초기화 할 때 목록의 첫 번째 요소에 'class = "active"상태를 추가 할 수 있기를 원합니다. 어떻게하면 플러그인을 수정하지 않고도이 문제에 접근 할 수 있습니까?jCarousel Lite의 첫 번째 항목에 활성 상태 추가

현재 설정 - 사전에

$('#viewport').jCarouselLite({ 
    speed: 500, 
    visible: 3, 
    scroll: 1, 
    start: 0, // Just for testing purposes 
    circular: true, 
    btnNext: '#next', 
    btnPrev: '#previous', 
    beforeStart: function(a) { 
     $(a[0]).animate({opacity: .5}, 250).toggleClass('active'); 
    }, 
    afterEnd: function(a) { 
     $(a[0]).animate({opacity: 1}, 500).toggleClass('active'); 
    } 
}); 

답변

1

바로 jCarouselLite의 초기화 후

을 다음

$('#viewport ul li:first').addClass('active'); 
+0

감사합니다. 기능이 내장 될 때까지해야합니다. –

0

사과 나는 방법 오프 트랙 야합니다. jCarouselLite를 초기화하기 전에이 클래스를 추가 할 수 없습니까?

코멘트 태그 사이의 코드를 jCarousel 소스에 추가하십시오.

div.css(sizeCss, divSize+"px");      // Width of the DIV. length of visible images 

/* add this */ 

    if(o.atStart){ 
     o.atStart.call(this, vis()); 
    }else{ 
     //not set 
    } 

/**/ 

    if(o.btnPrev) 
     $(o.btnPrev).click(function() { 
      return go(curr-o.scroll); 
     }); 

그런 다음 jCarousel 초기화에 대한 추가 매개 변수를 전달 : 수행

$('#viewport').jCarouselLite({ 
    speed: 500, 
    visible: 3, 
    scroll: 1, 
    start: 0, // Just for testing purposes 
    circular: true, 
    btnNext: '#next', 
    btnPrev: '#previous', 
    beforeStart: function(a) { 
     $(a[0]).animate({opacity: .5}, 250).toggleClass('active'); 
    }, 
    afterEnd: function(a) { 
     $(a[0]).animate({opacity: 1}, 500).toggleClass('active'); 
    }, 
    atStart: function(a){ 
     //do your stuff 
    } 
}); 
+0

죄송합니다. 약간 오해의 소지가 있습니다. 내가 찾고있는 것은 jCarousel Lite 옵션 안에 콜백 ("atStart"함수, 일종의)이다. –

+0

불행히도 하나는 존재하지 않지만 소스 코드에 쉽게 추가 할 수 있습니다. 플러그인을 수정하고 싶지는 않지만이 플러그인은 사소한 변경 사항이며 향후 릴리스에서 마이그레이션 될 가능성이 가장 높습니다. – trickyzter

+0

감사합니다. 위에 제공된 Shawn 예제와 같은 간단한 addClass를 사용하여 문제를 해결했습니다. –

0
beforeStart: function(a) { 
    $(a[0]).toggleClass('active').siblings().removeClass('active'); 

}

//이 작은 스크립트로 끝났습니다.

관련 문제