2010-06-19 2 views
1

jQuery 사이클 플러그인을 사용하여 다른 따옴표를 순환 시키려고합니다. 나는 견적의 길이에 따라 시간의 다른 금액에 대한 견적을 표시하고 싶습니다. 이것을 달성하기 위해 dur13이 ​​13 초 동안과 같은 클래스 이름으로 초 단위의 양을 출력하도록 컨텐츠 관리 시스템을 얻습니다.각 슬라이드의 타임 아웃 값이 다른 jQuery 사이클 플러그인

이 내 비 작업 시도 :

$('.featureFade').cycle({cycleTimeout: 10, after: onCycleAfter}); 

function onCycleAfter() { 
    $('.featureFade').cycle('pause'); 
    var duration = $(this).attr('class').substring($(this).attr('class').indexOf('dur')+3) 
    setTimeout(oncycleEnd, duration * 1000); 
} 
function oncycleEnd() { 
    $('.featureFade').cycle('resume'); 
} 

이 사이클이 가능합니까? 그렇지 않다면 작동 할 다른 플러그인이 있습니까? 난 정말 멋진 효과가 필요하지 않습니다, 페이드 아웃만으로 충분합니다.

많은 감사

답변

8

당신이 사용할 수있는 timeoutFn option이 같이있다 :

$('.featureFade').cycle({ 
    timeoutFn: function(currElement, nextElement, opts, isForward) { 
    var duration = $(currElement).attr('class').substring($(currElement).attr('class').indexOf('dur')+3) 
    return duration * 1000; 
    } 
}); 

그러나, 당신이 data attribute,이 같은 것을 사용할 수있는 클래스 대신 :

<img data-duration="2000" src="..." /> 

을 그러면 코드가 조금 더 간단 해집니다 :

$('.featureFade').cycle({ 
    timeoutFn: function(currElement, nextElement, opts, isForward) { 
    return parseInt($(currElement).attr('data-duration'), 10); 
    } 
}); 
+0

데이터 속성 아이디어가 훨씬 깔끔합니다. – Max

+0

@Max - 숫자를 알려주고, 당신의 지속 시간이 그것이 ....라고 생각하는 것처럼 나오는지 확인하십시오. 예를 들어'class = "dur2 otherClass"가 있다면 isNaN 예외가 생깁니다. 왜 데이터 속성 라우트를 제안할까요? –

+0

이것은 완벽하게 작동했습니다. 감사합니다! – Max