別々の div ID を使用して関数 stockTicker() を 2 回呼び出すと、2 つのティッカーがスムーズに実行されず、ジャンプします: http://jsfiddle.net/Tb6VY/
しかし、ティッカーが 1 つしかない場合は問題なく動作します: http://jsfiddle.net/39JJ4/
最初のものを機能させる方法についてのアイデアはありますか?
関数:
( function($) {
$.fn.stockTicker = function(options) {
if (typeof (options) == 'undefined') {
options = {};
}
var settings = $.extend( {}, $.fn.stockTicker.defaults, options);
var $ticker = $(this);
function startTicker() {
//stopTicker();
$firstElem = $ticker.children(":first");
var $width = $firstElem.width();
$ticker.stop().animate({
"right": "+="+$width+"px"
}, {
duration: settings.speed*200,
easing: 'linear',
complete: function() {
$ticker.css({"right": "-="+($width)+"px"});
$firstElem.clone().appendTo($ticker);
$firstElem.remove();
startTicker();
}
});
}
function stopTicker() {
$ticker.stop();
}
$ticker.hover(stopTicker, startTicker);
startTicker();
};
$.fn.stockTicker.settings = {};
$.fn.stockTicker.defaults = {
tickerID :null,
speed :1,
};
})(jQuery);