Ticker
Frank
- javascript
Hallo,
kann man den DIV Container in dem ein Ticker-Text angezeigt werden soll in der Länge und Höhe festlegen, so dass er nicht durch längeren Text ausgedehnt wird?
So etwas hier <div style="width:200px; max-width:200px; height:20px; max-height:20px;"> klappt offenbar nur in der Länge, aber nicht in der Höhe...).
Bisher sieht das Skript bei mir so aus:
<script language="JavaScript">
<!--
var zaehler=0;
var inhalt="Hier steht der einfach nicht enden wollende Tickertext, blablabla...";
function ticker()
{
if(zaehler==inhalt.length+1)
{
zaehler=0;
}
setTimeout('ticker()',100);
setContent('cont1',inhalt.substring(0,zaehler));
zaehler++;
}
//-->
</script>
<body onload="javascript:ticker()">
<div id="cont1"></div>
</body>
Wäre über jeden Hinweis dankbar.
Grüße,
Frank
hi,
Wäre über jeden Hinweis dankbar.
im css:
clip: rect(0 100px 30px 0);
overflow: hidden;
Gruesse Joachim
im css:
clip: rect(0 100px 30px 0);
overflow: hidden;
Hallo Joachim,
bin nur ungerne ein Spielverderber, aber das klappt leider auch nicht...
Frank
hi,
bin nur ungerne ein Spielverderber, aber das klappt leider auch nicht...
Klappt nicht ist etwas unpräzise... wenn der Text nicht umbricht, das Div sich nicht ausdehnen soll - irgendwann verschwindet der Text dann halt. Was genau willst Du denn erreichen? Sowas?
Gruesse Joachim
<html>
<head>
<style type="text/css">
#ebene0 {
position:absolute;
top:100px;
left:100px;
width:100px;
height:30px;
white-space: nowrap;
clip:rect(0 100px 20px 0);
overflow: hidden;
}
</style>
<script language="javascript1.2">
// layer schreiben
function writeDiv(el,text) {
if (document.getElementById) document.getElementById(el).innerHTML = text;
else if (document.layers) {
with (document.layers[el].document) {
open();
write(text);
close();
}
}
else document.all[el].innerHTML = text;
}
var zaehler = 0;
var dplInh = 0;
var maxInh = 15
var inhalt="Hier steht der einfach nicht enden wollende Tickertext, blablabla...";
function ticker() {
if(zaehler==inhalt.length+1) {
zaehler = 0;
dplInh = 0;
}
writeDiv('ebene0',inhalt.substring(dplInh,zaehler));
zaehler++;
dplInh = (zaehler < maxInh)? dplInh : dplInh + 1;
setTimeout('ticker()',100);
}
</script>
</head>
<body marginheight="0" marginwidth="0" onload="ticker()">
<div id="ebene0"></div>
</body>
</html>
PERFEKT!!!!!!!!! Genauso soll es sein :-)))
Wenn Du mir jetzt noch sagst wofür "el" und die Variable "dplInh" zuständig sind, blicke ich sogar durch ;-)
Grüße,
Frank
hi,
PERFEKT!!!!!!!!! Genauso soll es sein :-)))
Wenn Du mir jetzt noch sagst wofür "el" und die Variable "dplInh" zuständig sind, blicke ich sogar durch ;-)
wie schoen ;-)
el ist das was ich an writeDiv uebergebe: die div-layer Id (Du kannst hier natuerlich auch Deine Funktion verwenden)
dplInh ersetzt die 0 bei substring. Wenn
Dein "zaehler" maxInh erreicht, wird auch dplInh hochgezaehlt, dadurch wird von Deinem String der vordere Teil beschnitten (lies mal die stringmethoden substr bzw. substring nach)
Gruesse Joachim
Hi!
kann man den DIV Container in dem ein Ticker-Text angezeigt werden soll in der Länge und Höhe festlegen, so dass er nicht durch längeren Text ausgedehnt wird?
Wenn Du fuer das DIV die CSS-Regel
div#cont1 { white-space:nowrap }
festlegst, wird der gesamte Text in einer Zeile dargestellt.
HTH && So long
Wenn Du fuer das DIV die CSS-Regel
div#cont1 { white-space:nowrap }
festlegst, wird der gesamte Text in einer Zeile dargestellt.
damit wäre ich dann ja schon mal einen Schritt weiter ;-)
Kann ich die Länge diese Zeile auch noch begrenzen?
Grüße
Frank
Re!
Kann ich die Länge diese Zeile auch noch begrenzen?
Aehm, nein. Das bedeutet naemlich nur, dass Leerzeichen kein Grund sein sollen, eine neue Zeile anzufangen. Normalerweise wird ja, wenn der Platz nicht reicht, am naechstgelegenen Leerzeichen auf die neue Zeile umbrochen.
Du kannst aber immer noch einfach <br> in den String an die Stelle schreiben, wo umbrochen werden soll.
Oder, wenn es wirklich nach einer bestimmten Anzahl Pixel sein soll (z.B. Zeilenlaenge 2000 Pixel, wovon immer 400 Pixel sichbar sein sollen), das von Joachim genannte 'clip' in Verbindung mit 'width' einsetzen und das 'white-space' diesmal weglassen. Wie das genau geht, weiss ich aber auch nicht. Ich baue niemals Ticker, weil ich die fuer aeusserst sinnlos halte, weisst Du. ;-)
So long