2012-01-27 10 views
0

UL 목록을 스크롤하는 jQuery 스크립트를 만들었습니다. 문제는 목록의 현재 항목을 마우스로 가리키면 애니메이션을 일시 중지하고 싶습니다.mouseover/hover에서 애니메이션 일시 중지

매시간 내 시계 기능을 호출하는 타이머와 새 항목으로 목록을 업데이트하는 업데이트 기능이 있습니다. 애니메이션과 관련이 없으므로 포함하지 않았습니다.

// Initiate a call to ticker every 1second 
    var tickerUpdateTimer = setInterval('ticker()', 1000); 

시세 기능

function ticker() { 
    if ($('ul#ticker li:first').length == 0) 
     tickerUpdate(); 

     $.when(tickerSlideIn()).then(tickerSlideOut()); 
} 

function tickerSlideIn() { 
    $('ul#ticker li:first').show("slide", { direction: "down" }, tickerSpeed).delay(tickerPause); 
} 

function tickerSlideOut() { 
    $('ul#ticker li:first').hide("slide", { direction: "up" }, tickerSpeed, function() {$(this).remove();}); 
} 

나는 누군가가 나를 호버/마우스 오버, 덕분에 일시 정지 제 기능을 다시 도움이 될 수 있기를 바랍니다 JQuery와 UI 슬라이드 기능을 사용합니다.

+2

이미 질문과 대답 동료 ... http://stackoverflow.com/questions/5088766/the-way-to-stop-and- continue-animation-while-mouseover-and-mouseout-in-jquery – Archer

+0

흠, 그 플러그인의 다운로드 위치를 찾지 못하는 것 같습니다. 그러나 해당 플러그인을 사용하지 않고서는 안됩니까? 머리를 주셔서 감사합니다. 여기 많은 게시물을 보았지만 그걸 보지 못했습니다. – Zalon

+1

물론, 플러그인이 있으므로 animate 함수의 자체 버전을 다시 작성할 필요가 없습니다. 네이티브 일시 정지가 없습니다/jQuery 애니메이션 전용 중지가 계속됩니다. – Archer

답변

0

당신은 어떤 플러그인없이 수행 할 수 있습니다

var tickerUpdateTimer = setInterval('ticker()', 1000), paused = false; 

$('ul#ticker').hover(function(){ paused = true; }, 
         function(){ paused = false; }); 

function ticker() { 

    if (paused) return; 

    if ($('ul#ticker li:first').length == 0) 
     tickerUpdate(); 

     $.when(tickerSlideIn()).then(tickerSlideOut()); 
} 
+0

'setInterval ('ticker()', 1000)'vs'setInterval (function() {ticker();})? :) – Johan

+0

이상,'setInterval (ticker, 1000)' – Archer

+0

오, 고마워요. - 좋은 생각입니다! 그러나 $ .when (tickerSlideIn()). then (tickerSlideOut()); 전화가 이미 해당 지점에서 이루어 졌기 때문에 마우스를 끈 상태에서도 텍스트를 슬라이드 아웃시킵니다. 일시 중지 된 체크를 슬라이드 함수로 이동하면 다음과 같이 수정됩니다. – Zalon

관련 문제