2013-09-27 81 views
0

我試圖做出與鼠標懸停暫停/恢復jQuery的無縫字幕動畫,但我不能解決網速問題..jQuery的動畫暫停恢復速度減慢

我敢肯定這只是我錯過的一點點。 這裏我已經得到了迄今:

CSS

body{ 
    width:500px; 
    border:1px solid #000; 
    margin:0 auto;} 
#marquee{ 
    overflow:hidden; 
    width:100%;} 
#marquee div{ 
    margin-left:-100%; 
    width:200%;} 
#marquee span{ 
    width:50%; 
    display:inline-block; 
    text-align:center;} 

JS

$(function() { 
    $("#marquee") 
    .wrapInner("<span>") 
    .append($(this).find("span").clone()) 
    .wrapInner("<div>") 
    .mouseover(function(){ 
     stops(); 
    }) 
    .mouseout(function(){ 
     plays(parseInt($m.css('margin-left'))); 
    }); 
    $m = $('#marquee').find("div"); 
    var cd = parseInt($m.css("margin-left")); 
    var sp = Math.abs(cd/5000); 
    var reset = function(s) { 
    if(!s) $m.css("margin-left", "0%"); 
    s = s | 5000; 
    $m.animate({ "margin-left": "-100%" }, s, 'linear', reset); 
    }; 
    var plays = function(e) { 
    var d = Math.abs(cd-e); 
    var s = d/sp; 
    $m.css("margin-left", e); 
    reset(s); 
    }; 
    var stops = function() { 
    $m.clearQueue(); 
    $m.stop(); 
    }; 
    reset(); 
}); 

http://jsbin.com/ifUXuKi/1/

請不要給我一個插件來解決這個問題:)

+0

固定根據洛朗回答了「按位或」: http://jsbin.com/ifUXuKi/8/edit – user2779992

回答

0

嘗試使用|| (邏輯OR)而不是| (按位或)。

s = s || 5000; 
+0

:))我想我錯過了.. 感謝,非常感謝」 – user2779992