Lauftschrift mit dynamischer Breite

aKraus

Erfahrenes Mitglied
Hallo,
ich habe folgendes Script für meine Laufschrift. Mein Problem ist, dass ich eine dynamische Breite habe. Das heißt, die Laufschrift ist in ein Design eingebunden und kann 100px aber auch 1300px sein. Je nachdem was der Benutzer für eine Auflösung verwenden. Hat irgendwer von euch eine Idee, wie man den Script unten anpassen kann?

Script:
Code:
<!--
    NewsTickerText = new Array();
    
    NewsTickerText[0] = 'Das ist ein Text';
    NewsTickerText[1] = 'Das ist ein Text';
    NewsTickerText[2] = 'Das ist ein Text';
    NewsTickerText[3] = 'Das ist ein Text';
    NewsTickerText[4] = 'Das ist ein Text';
    
    NewsTickerDelimiter  = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
    NewsTickerInterval   = 25;
    NewsTickerStop       = true;
    NewsTickerRepeat     = 5;
    NewsTickerBorder     = '0px solid #818181';
    NewsTickerWidth      = '613';
    NewsTickerPadding    = 1;
    
    IE=document.all&&!window.opera;
    DOM=document.getElementById&&!IE;
    
    if(DOM||IE) {
        var NewsTickerGo;
        NewsTickerPos  = 0;
        NewsTickerStop = NewsTickerStop?'onmouseover="clearInterval(NewsTickerGo)"onmouseout="NewsTickerGo=setInterval(\'DM_ticken()\','+NewsTickerInterval+')"':'';
        NewsTickerTxt  = NewsTickerDelimiter+NewsTickerText.join(NewsTickerDelimiter);
        NewsTickerText = NewsTickerTxt;
        
        for(i=1; i < NewsTickerRepeat; ++i) { 
            NewsTickerText = NewsTickerText + NewsTickerTxt; 
        }
        
        document.write('<div style="overflow:hidden;border:'+NewsTickerBorder+';width:'+NewsTickerWidth+'px;padding:'+NewsTickerPadding+'px 0px '+NewsTickerPadding+'px 0px;">'+'<nobr><span id="ticker"style="position:relative;"'+NewsTickerStop+' class="newsticker">'+NewsTickerText+'</span></nobr></div>');
        
        NewsTickerObj=IE?document.all.ticker:document.getElementById('ticker');
        
        function DM_ticken() {
            NewsTickerOffset=NewsTickerObj.offsetWidth/NewsTickerRepeat;
            
            if ( Math.abs(NewsTickerPos) > NewsTickerOffset ) { 
                NewsTickerPos=0; 
            }
            
            NewsTickerObj.style.left=NewsTickerPos;
            NewsTickerPos--;
        }
        NewsTickerGo= setInterval('DM_ticken()', NewsTickerInterval);
    }
//-->
 
Hi,

versuch mal, der Variablen NewsTickerWidth einen Prozentwert zuzuweisen. Im Gegenzug entfernst du
in der document.write-Anweisung die px-Angabe bei der Breitenangabe.

Ausserdem muss in der Funktion DM_ticken noch eine Pixelangabe gesetzt werden. Andernfalls läuft der
Ticker im Firefox nicht korrekt.
Code:
    NewsTickerText = new Array();

    NewsTickerText[0] = 'Das ist ein Text';
    NewsTickerText[1] = 'Das ist ein Text';
    NewsTickerText[2] = 'Das ist ein Text';
    NewsTickerText[3] = 'Das ist ein Text';
    NewsTickerText[4] = 'Das ist ein Text';

    NewsTickerDelimiter  = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
    NewsTickerInterval   = 25;
    NewsTickerStop       = true;
    NewsTickerRepeat     = 5;
    NewsTickerBorder     = '0px solid #818181';
    NewsTickerWidth      = '50%';
    NewsTickerPadding    = 1;

    IE=document.all&&!window.opera;
    DOM=document.getElementById&&!IE;

    if(DOM||IE) {
        var NewsTickerGo;
        NewsTickerPos  = 0;
        NewsTickerStop = NewsTickerStop?'onmouseover="clearInterval(NewsTickerGo)"onmouseout="NewsTickerGo=setInterval(\'DM_ticken()\','+NewsTickerInterval+')"':'';
        NewsTickerTxt  = NewsTickerDelimiter+NewsTickerText.join(NewsTickerDelimiter);
        NewsTickerText = NewsTickerTxt;

        for(i=1; i < NewsTickerRepeat; ++i) {
            NewsTickerText = NewsTickerText + NewsTickerTxt;
        }

        document.write('<div style="overflow:hidden;border:'+NewsTickerBorder+';width:'+NewsTickerWidth+';padding:'+NewsTickerPadding+'px 0px '+NewsTickerPadding+'px 0px;">'+'<nobr><span id="ticker"style="position:relative;"'+NewsTickerStop+' class="newsticker">'+NewsTickerText+'</span></nobr></div>');

        NewsTickerObj=IE?document.all.ticker:document.getElementById('ticker');

        function DM_ticken() {
            NewsTickerOffset=NewsTickerObj.offsetWidth/NewsTickerRepeat;

            if ( Math.abs(NewsTickerPos) > NewsTickerOffset ) {
                NewsTickerPos=0;
            }

            NewsTickerObj.style.left=NewsTickerPos+"px";
            NewsTickerPos--;
        }
        NewsTickerGo= setInterval('DM_ticken()', NewsTickerInterval);
    }
Ciao
Quaese
 
Hallo Quaese,

erstmal danke für deine Hilfe. Mein Problem ist aber nicht der FF, sondern der IE. Ich habe vorhin eine .zip Datei hochgeladen, welche dir das Problem aufzeigen sollte.
 

Neue Beiträge

Zurück