onloadHooks.push(function(){ $('#newsticker').newsslider({ speed: 1500, delay: 4000 }); }); $.fn.newsslider = function(options){ options = $.extend({ speed: 1500, delay: 4000, direction: 'vertical' }, options); function initialize(target ,options){ var list = $(target).children('ul'); var listItems = $(list).children('li'); //start-hoehe berechnen if( $(listItems).size() >= 4 ){ //hoehe bis zum obersten element (starthoehe) $('#newsticker').css( {height : $(listItems).eq(3).position().top} ); $(list).css( { position: 'absolute', top: 0, left: 0, width: 170, height: $(listItems).last().position().top }); //loop function setInterval(function() { scroll( target ); }, options.delay); } } function scroll(target){ var updatedList = $(target).children('ul'); var updatesItems = $(updatedList).children('li'); $(target).children('ul').animate({ top: -getItemHeight( $(updatesItems), 0 ) }, options.speed, 'linear', function() { // Animation complete. var tmp = $(updatesItems).eq(0); $(updatedList).css( {top: 0}); $(updatesItems).eq(0).remove(); $(tmp).appendTo( $(updatedList) ); }); } function getItemHeight(items, cur){ return ( $(items).eq(1).position().top - $(items).eq(0).position().top ); } initialize($(this), options); } /* function newsslider() { if($('newsticker')) { var Slider = new Class({ setOptions: function(options) { this.options = Object.extend({ speed: 1500, delay: 4000, direction: 'vertical', onComplete: Class.empty, onStart: Class.empty }, options || {}); }, initialize: function(el,options){ this.setOptions(options); this.el = $(el); this.items = this.el.getElements('li'); var w = 0; var h = 0; if(this.options.direction.toLowerCase()=='horizontal') { h = this.el.offsetHeight; this.items.each(function(li,index) { w += li.offsetWidth; }); } else { w = this.el.offsetWidth; this.items.each(function(li,index) { h += li.offsetHeight; }); } $('newsticker').setStyles({ height : this.items[0].offsetHeight+this.items[1].offsetHeight+this.items[2].offsetHeight+2 }); this.el.setStyles({ position: 'absolute', top: 0, left: 0, width: w, height: h }); if(this.items.length >= 4){ this.current = 0; this.togo=this.items[this.current].offsetHeight*(-1); this.fx = new Fx.Tween(this.el,{ property: 'top', duration:this.options.speed, onComplete:function() { this.el.setStyles({ position: 'absolute', top: 0, left: 0, width: w, height: h }); var temp_el = this.items[this.current]; this.items[this.current].dispose(); temp_el.inject(this.el); // console.log('set first down'); this.next(); }.bind(this) }); //this.fx.start('top',this.togo); this.fx.start.pass([0,this.togo], this.fx).delay(this.options.delay); } }, next: function() { this.current ++; if(this.current == this.items.length) this.current = 0; this.togo=this.items[this.current].offsetHeight*(-1); //this.fx.start('top',this.togo); this.fx.start.pass([0,this.togo], this.fx).delay(this.options.delay); //console.log('move ul up '+this.togo); } }); var vert = new Slider('newsticker_list',{speed:1500,delay:4000,direction:'vertical'}); } } */