Blinktext
Ian77
- javascript
Hallo,
wie kann ich zum Beispiel dieses Script umbauen, dass alle Texteelmente mit der ID im Body blinken bzw. die Frabe wechseln...
Trägt man mehre ID´s ein, dann blickt immer nur der erste Text mit der ID...
<html>
<head>
<title>Blinkender Text nervt</title>
<script type="text/javascript">
<!--
function nerv_mich() {
var obj = document.getElementById("blinker").style;
if(obj.color == "red") {
obj.color = "blue";
}
else {
obj.color = "red";
}
window.setTimeout(nerv_mich, 500);
}
//-->
</script>
</head>
<body onload="nerv_mich()">
<p>Dieser <span style="color:red" id="blinker">blinkt </span>Blinktext1 blinkt</p>
<p>Dieser <span style="color:red" id="blinker">blinkt </span>Blinktext2 blinkt nicht</p>
</body>
</html>
Das ist bei allen zu findenden Scripten im Net...
Hat da mal jemand eine Lösung?
id sollte ein Element eindeutig identifizieren, daher solltest du es nicht mehrfach verwenden. Du bekommst daher auch nur das erste zurückgeliefert.
Daher heißt es ja auch getElementById und nicht getElement(s)ById
Warum benutzt nicht class?
Wie geht das mit class?
Hast nicht ne schnelle Lösung?
Stimmt, mit ID gehts nicht, da die immer eindeutig sein muss... Sorry
Hi,
Wie geht das mit class?
Hast nicht ne schnelle Lösung?Stimmt, mit ID gehts nicht, da die immer eindeutig sein muss... Sorry
Mit document.getElementsByTagName("span") kannst du auf alle Span-Elemente zugreifen.
Dann kannst du diese in einer Schleife durchlaufen lassen und darin mit .className abfragen, ob das span-Element die gewuenschte Klasse hat.
mfG,
steckl
In etwa so?
<head>
<script type="text/javascript">
function blinker() {
for(k=0; k<document.getElementsByTagName("span").length; k++) {
if(document.getElementsByTagName("span")[k].style.visibility != "hidden") {
if(document.getElementsByTagName("span")[k].className.substr(0, 5) == "blink")
document.getElementsByTagName("span")[k].style.visibility = "hidden";
} else {
if(document.getElementsByTagName("span")[k].className.substr(0, 5) == "blink")
document.getElementsByTagName("span")[k].style.visibility = "visible";
}
}
var zeit = 750;
window.setTimeout("blinker()", zeit);
}
</script>
<style type="text/css">
span.blink_farbe {
color: #FF0000;
}
</style>
</head>
<body onLoad="blinker()">
Hallo! <span class="blink_farbe">Dieser Text 1 blinkt!</span>
Hallo! <span class="blink_farbe">Dieser Text 2 blinkt auch!</span>
</body>
hihihi
oder so ?
<html>
<head>
<script type="text/javascript">
function blinker2(zeit) {
var spans=document.getElementsByTagName("span");
for(k=0; k<spans.length; k++) {
with (spans[k]) {
if (className.substr(0, 5) == "blink") {
style.visibility= style.visibility == "hidden" ? "visible":"hidden";
}
}
}
window.setTimeout("blinker2("+zeit+")", zeit);
}
</script>
<style type="text/css">
span.blink_farbe {
color: #FF0000;
}
</style>
</head>
<body onLoad="blinker2(500)">
Hallo! <span class="blink_farbe">Dieser Text 1 blinkt!</span>
Hallo! <span class="blink_farbe">Dieser Text 2 blinkt auch!</span>
</body>
</html>
Hello out there!
Trägt man mehre ID´s ein, dann blickt immer nur der erste Text mit der ID...
function nerv_mich()
Die Benennung lässt erahnen, dass du weißt, was du da (an)tust?
See ya up the road,
Gunnar
hi,
wie kann ich zum Beispiel dieses Script umbauen, dass alle Texteelmente mit der ID im Body blinken bzw. die Frabe wechseln...
Klasse eines übergeordneten Elements ändern, und Nachfahrenselektor im CSS sinnvoll anwenden.
gruß,
wahsaga