jQuery( document ).ready(function() { jQuery.fn.liScroll = function(settings) { settings = jQuery.extend({ travelocity: 0.03 }, settings); return this.each(function(){ var $strip = jQuery(this); $strip.addClass("newsticker") var stripHeight = 1; $strip.find("li").each(function(i){ stripHeight += jQuery(this, i).outerHeight(true); // thanks to Michael Haszprunar and Fabien Volpi jQuery(this, i).clone().appendTo( $strip ); }); $strip.find("li").each(function(j){ stripHeight += jQuery(this, j).outerHeight(true); jQuery(this, j).clone().appendTo( $strip ); }); $strip.find("li").each(function(k){ stripHeight += jQuery(this, k).outerHeight(true); jQuery(this, k).clone().appendTo( $strip ); }); $strip.find("li").each(function(m){ stripHeight += jQuery(this, m).outerHeight(true); jQuery(this, m).clone().appendTo( $strip ); }); $strip.find("li").each(function(n){ stripHeight += jQuery(this, n).outerHeight(true); jQuery(this, n).clone().appendTo( $strip ); }); //console.log(stripHeight); var $mask = $strip.wrap("
"); var $tickercontainer = $strip.parent().wrap(""); var containerHeight = $strip.parent().parent().height(); //a.k.a. 'mask' width $strip.height(stripHeight); var totalTravel = stripHeight; var defTiming = totalTravel/settings.travelocity; // thanks to Scott Waye function scrollnews(spazio, tempo){ $strip.animate({top: '-='+ spazio}, tempo, "linear", function(){$strip.css("top", containerHeight); scrollnews(totalTravel, defTiming);}); } scrollnews(totalTravel, defTiming); $strip.hover(function(){ jQuery(this).stop(); }, function(){ var offset = jQuery(this).offset(); var residualSpace = offset.top + stripHeight; var residualTime = residualSpace/settings.travelocity; scrollnews(residualSpace, residualTime); }); }); }; //jQuery("ul#kalendarium-list").liScroll(); //jQuery("ul.oceanwp-recent-posts").liScroll(); });