Lauftext ruckelt

Zack

cookies vader
Hallo,
ich verwende ein vorgefertigtes Script für einen Lauftext, ka mehr wo ich das genau her habe da ich den Script schon länger habe.

Auf jedenfall wolte ich dieses Script in eine weitere Webseite einbauen. Es handelt sich hierbei um ein CMS (Webspell).
Javascript:
			<script type="text/javascript">
			/* * * * * * * * * * * * * * * * D I E  V A R I A B L E N * * * * * * * * * * * * * * * * * */

			    //°°°°°°°°°°Die News

			tNews=new Array();
			tNews.push('$scrolltext');

			    //°°°°°°°°°°Laufrichtung(up,down,left,right)
			strDir      ='$direction';

			    //°°°°°°°°°°Delimiter zwischen den einzelnen News(nur bei left/right)
			strDelimiter=' | ';

			    //°°°°°°°°°°Interval in ms
			intInterval =$delay;

			    //°°°°°°°°°°Stop bei mouseover?true:false
			blnStopHover=false

			    //°°°°°°°°°°Falls Leeraum zwischen News...hier Wert erhoehen...minimum:1
			intRepeat   =20;

			    //°°°°°°°°°°Rahmen
			strBorder   ='0px';

			    //°°°°°°°°°°Breite
			intWidth    =970;

			    //°°°°°°°°°°Höhe
			intHeight   =20;

			    //Abstand Rahmen->Inhalt
			intPadding  =4;

			    //Background-color
			strBgc      ='';

			    //Text-color
			strTxtc     ='#ffffff';

			    //Textausrichtung
			strAlign    ='left';

			    //Schritt pro Durchlauf(px)
			intStep=1;


			/* * * * * * * * * * * * * * * * * * D E R  T I C K E R * * * * * * * * * * * * * * * * * * * * * */

			    //IE ab V4?
			IE=document.all&&!window.opera;
			    //DOM-Browser(ausser IE)
			DOM=document.getElementById&&!IE;


			//läuft ab IE4 und in DOM-Browsern
			if(DOM||IE)
			  {
			        //Ermitteln, ob Ticker horizontal oder vertikal laufen soll
			    blnDir=(strDir=='up'||strDir=='down')?true:false;

			        //Bei horizontalem Ticker wird ein nobr-, ansonsten ein div-Tag verwendet
			    strNobr=(blnDir)?'div':'nobr';

			        //Trennzeichen zwischen den Einzelnen Eintraegen
			        //bei horizontalem Ticker gemäss Angabe in Variale strDelimiter
			        //Ansonsten Zeilenumbrueche
			    strDelimiter=(blnDir)?'<br><br>':strDelimiter;

			        //String fuer Textausrichtung bei vertikalem Ticker
			    strAlign=(blnDir)?'text-align:'+strAlign+';':'';

			        //Variable zum Speichern des Intervals
			    var objGo;
			        //Variable zum Speichern der Position
			    intPos=0;

			        //String erzeugen fuer JS-Code, falls Ticker beim mouseover stoppen soll
			    strStopHover=(blnStopHover)?'onmouseover="clearInterval(objGo)"onmouseout="objGo=setInterval(\'DM_ticken()\','+intInterval+')"':'';

			        //Tickertext zu String zusammenfuegen
			    strText=(blnDir)?tNews.join(strDelimiter)+strDelimiter:tNews.join(strDelimiter)+strDelimiter;
			    strNews=strText;
			    for(i=1;i<intRepeat;++i)
			        {
			        strNews+=strText;
			        }

			        //TickerCode zu String zusammenfuegen
			    strTicker='<div style="position: relative; '+strAlign+'overflow:hidden;background-color:'+strBgc+
			                    ';border:'+strBorder+';width:'+intWidth+'px;height:'+intHeight+'px;padding:'+intPadding+
			                    'px;"><'+strNobr+'><div id="ticker"style="position:relative;color:'+strTxtc+';background-color:'+strBgc+
			                    ';"'+strStopHover+'>'+strNews+'</div></'+strNobr+'></div>';

			        //TickerCode im Dokument ausgeben
			    document.write(strTicker);

			        //Funktion, um Ticker ticken zu lassen
			    function DM_ticken()
			    {
			        //Ticker-Objekt je nach Browser ermitteln
			    objTicker=(IE)?document.all.ticker:document.getElementById('ticker');

			        //Array fuer zu manipulierende Eigenschaften des Tickers je nach Richtung
			        //Richtung=new Array(Pixelwert zur Aenderung der Position,Breite/Höhe des Tickers,zu andernder Positionswert);
			    arrDir=new Array();
			    arrDir['up']    =new Array(-1,objTicker.offsetHeight,'top');
			    arrDir['down']  =new Array(1,objTicker.offsetHeight,'top');
			    arrDir['left']  =new Array(1,objTicker.offsetWidth,'left');
			    arrDir['right'] =new Array(-1,objTicker.offsetWidth,'left');

			        //Ermitteln von Breite bzw. Höhe der anzuzeigenden Items
			    dblOffset=arrDir[strDir][1]/intRepeat;

			        //Neuen Positionswert ermitteln
			    switch(strDir)
			        {
			        case'right':
			            intPos=(Math.abs(intPos)>dblOffset)?0:intPos;break;
			        case'left':
			            intPos=(intPos>0)?-dblOffset:intPos;break;
			        case 'up':
			            intPos=(Math.abs(intPos)>dblOffset)?0:intPos;break;
			        case 'down':
			            intPos=(intPos>0)?-dblOffset:intPos;break;
			        }
			        //Neuen Positionswert zuweisen
			    objTicker.style[arrDir[strDir][2]]=intPos + "px";

			        //Positionswert hoch/heruntersetzen
			    intPos+=intStep*arrDir[strDir][0];
			    }
			        //Erneut ticken lassen
			    objGo=setInterval('DM_ticken()',intInterval);
			  }
			</script>

Im IE arbeitet es korrekt, komischer weiße geht bei dem mal Browser mal was richtig. In FF und Opera "ruckelt" der Text. Er läuft etwa bis zur Mitte und fängt dann wieder vom Anfang an. Ich hab schon alle Eintstellungen versucht.

Da ich mich aber mit JavaScript nicht so auskenne sind die Funktionen etwas schwer begreiflich für mich.

Also, need help! Thx im vorraus Ra7or
 
Zuletzt bearbeitet von einem Moderator:
Die kommen aus der Datenbank und enthalten aktuell:
$scrolltext = Next Wars: Mittwoch 20Uhr vs. Clan Clanless.wc3 (Ex Asphex.eV)
$direction= Left
$delay= 100

Ich weiß auch wie das ruckeln zustande kommt:

Anstatt das die "Kopie" die hinten dran hängt mit bis zueende durchläuft. Fängt er dann von vorne an wenn der eigentliche Text durchgelaufen ist. er wartet also quasi nicht bis die Kopie auch durch ist.
 
Zuletzt bearbeitet:
Das nächste Mal solltest du deine neuen Erkenntnisse nicht in deinen alten Beitrag reineditieren, da man hierüber nicht per Email informiert wird und der Thread in der Forenübersicht nicht das entsprechende Status-Icon für einen neu geposteten Beitrag erhält ;)

Hast du mal einen Link zur Seite, dass wir uns das "live" anschauen können?

mfg Maik
 
keiner ne idee?

gibt es veleicht eine alternative zu dem von mir verwendeten Script das sich ähnlich gut einstellen lässt?
 
Hi,

ersetze in der Variablen strTicker die relative Positionierung des inneren Elements durch eine absolute.
Code:
        //TickerCode zu String zusammenfuegen
    strTicker='<div style="position: relative; '+strAlign+'overflow:hidden;background-color:'+strBgc+
                    ';border:'+strBorder+';width:'+intWidth+'px;height:'+intHeight+'px;padding:'+intPadding+
                    'px;"><'+strNobr+'><div id="ticker"style="position:absolute;color:'+strTxtc+';background-color:'+strBgc+
                    ';"'+strStopHover+'>'+strNews+'</div></'+strNobr+'></div>';
Ciao
Quaese
 

Neue Beiträge

Zurück