2012-02-14 5 views
2

jQuery Reel (http://jquery.vostrel.cz/reel)은 멋진 360도보기를 만들기위한 훌륭한 jquery 플러그인입니다.jQuery Reel을 특정 프레임으로 재생하는 방법은 무엇입니까?

애니메이션을 재생, 정지 및 일시 중지하고 현재 어떤 프레임이 있는지 감지 할 수있는 이벤트가 있지만 (.reel ("frame")) 실제로 넣을 수는 없습니다. 함께 특정 프레임의 릴을 재생하는 링크를 만든 다음 중지합니다. 어떤 제안?

답변

7

당신은 이벤트에 바인딩하여 대상 프레임을 확인하고 도달하면 "stop"입니다. 이런 식으로 뭔가 :

$('#your_reel_image') 
.trigger('play') 
.bind('frameChange', function(){ 
    if ($(this).reel('frame') == target_frame){ 
     $(this).trigger('stop'); 
    } 
}); 

그냥은 휴대폰과 같은 느린 장치에서 일부 프레임이 필요한 애니메이션 속도를 유지하기 위해 건너 뛸 수 있습니다, 사실에 유의하십시오.

은 또한 자신에게 핸들러 내부에 추가 .reel() 전화를 저장할 수있는 frame 세 번째 이벤트로 핸들러 인수를받을 수 있으므로 위를 리팩토링 할 수 있습니다

$('#your_reel_image') 
.trigger('play') 
.bind('frameChange', function(e, depr_frame, frame){ 
    if (frame == target_frame){ 
     $(this).trigger('stop'); 
    } 
}); 

편집 :

버전 이후 1.3을 사용하면 위의 솔루션을 다음과 같이 바꿀 수 있습니다.

$('#your_reel_image').trigger('reach', target_frame); 

릴은 주어진 프레임을 향한 최단 경로에 애니메이션을 적용하고 거기에서 멈출 것입니다.

+0

위대한 플러그인 Petr을 주셔서 감사합니다! 특정 프레임으로 이동하는 동안 속도를 높이는 간단한 방법이 있습니까? 새로운 속도로 릴 재 초기화를 시도했지만 처음 프레임으로 리셋됩니다. 이것은 의도 한 것이 아닙니다. –

+2

실제로 있습니다. '.trigger ('play ')와 같이 [' "play"'이벤트] (http://test.vostrel.cz/jquery.reel/docs/jquery.reel.html#play-Event) , 0.5)'. Github의 [Issue # 110] (https://github.com/pisi/Reel/issues/110)을 참조하십시오. –

+0

정말 대단합니다 - 고마워요! –

관련 문제