ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
1115
1115
EMPFEHLEN
-
hallo, ich hatte das schon mal woanders gefragt, aber es ist bestimmt irgendwie untergegangen.
bei mir faengts damit an, dass mein scroller bei
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
gar nicht funktioniert.
mein scroller startet wird aber nach einer sekunde oder so angehalten.
es scheint dass setInterval und setTimeout nicht mit XHTML kompatibel sind.
wenn ich den DOCTYPE auf HTML 4.01 setze laeuft alles ohne probleme.
Die meisten foren kommen heutzutage mit XHTML doctype, und scroller scheinen da nicht einfach so zu funktionieren.
das script ist sehr kurz:
name1 ist hier der name eines <DIV> tags der ein bild enthaelt.<script language=javascript>
function test()
{
aa = document.body.scrollTop + 15;
bb -= aa;
bb *= 0.9;
bb += aa;
name1.style.top = bb;
}
setInterval("test()",20);
</script>
wie gesagt, funktioniert grundsaetzlich, haelt ein bild beim scrollen immer 15px vom oberen rand weg, aber sobald der DOCTYPE auf XHTML steht geht nichts mehr.
Was kann man tun damit der scroller mit XHTML auch laeuft?
-
05.03.05 14:17 #2
- Registriert seit
- Oct 2004
- Ort
- München / Innsbruck
- Beiträge
- 2.263
XHTML braucht bei style-Angaben immer die Einheit. Mit
name1.style.top = bb + 'px';sollte es gehen.
Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?
| Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |
-----------
Zufriedenstellende Beiträge bitte als erledigt markieren!
-
interessante antwort, vielen dank fuer den tip.
Ich werde es sofort ausprobieren.
Interessant ist auch, dass das javascript programm anlaeuft. Fuer ne sekunde oder so scrollt das <DIV> ja, dan stoppt es und laeuft nicht weiter.
-
05.03.05 14:24 #4
- Registriert seit
- Oct 2004
- Ort
- München / Innsbruck
- Beiträge
- 2.263
Ach ja, XHTML kennt auch das language-Attribut nicht. Es ist besser immer <script type="text/javascript"> undabhängig von der DTD zu benutzten, das geht nämlich bei allen in so gut wie allen Browsern.
Auch das name-Attribut ist unerwünscht. Du solltest also ein div mit id und dann document.getElementById('id') verwenden.
Ganz nebenbei funktioniert dein Script so wie es ist bei mir wieder im IE noch in Opera noch in Mozilla...Geändert von con-f-use (05.03.05 um 14:28 Uhr)
Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?
| Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |
-----------
Zufriedenstellende Beiträge bitte als erledigt markieren!
-
hallo, hier ist das script wie ich es genau im forum eingebaut habe:
mit XHTML funktioniert immer noch nicht.<script language='JavaScript' type='text/javascript'>
ff = 'test()'
bb = 0;
function test()
{
aa = document.body.scrollTop + 26;
bb -= aa;
bb *= 0.8;
bb += aa;
name1.style.top = bb + "px";
}
setInterval(ff,20);
</script>
das script funktioniert bei mir auf IE und Firefox, ich habs nicht auf NN ausprobiert.
Klick unten auf My Forum, dann siehst du die Login und register buttons in der oberen rechten ecke beim scrollen runterlaufen.
hab das ganz vergessen: hier wie ich das DIV aufgebaut habe:
<DIV style="position: absolute; right: 15px; top: 0px; width: 548px; height: 66px; z-index: 20" id="name1" name="name1">Geändert von Ann Drew (05.03.05 um 14:34 Uhr)
-
05.03.05 14:41 #6
- Registriert seit
- Oct 2004
- Ort
- München / Innsbruck
- Beiträge
- 2.263
Übrigens hört es gar nicht auf zu scrollen du hast nur einen Fehler in deiner Funktion. Die Variable bb nähert sich nämlich asymptotisch dem Wert 26 an. Auch würde ich dir empfehlen bb mit math.round() vorher zu runden, bevor du style.top den Wert von bb zuweist.
Wäre der Satz "Ich möchte auf meinem Fisch-und-Chips-Schild einen Bindestrich zwischen die Wörter Fisch und und und und und Chips machen" nicht deutlicher, wenn Anführungszeichen vor Fisch und zwischen Fisch und und und und und und und und und und und und und und und und und und und und und Chips und auch nach Chips wären?
| Meine Homepage: Forschung, unethische | Meine Seite mit viel verlangten Javascrits |
-----------
Zufriedenstellende Beiträge bitte als erledigt markieren!
-
vielen dank fuer den tip mit math.round() das werd ich noch einbauen.
ich weiss dass es nicht aufhoert zu scrollen. Es soll sich asymptotisch dem wert 26 annaehern. Man nennt das 'easing'. Das bild lauft schnell richtung endziel und bremst dann ab.
Ich hab frueher mal was gescripted was feststellt of der benutzer rauf und runter scrollt, im Moment wo gescrollt wurde ist jas javascript dann auch angelaufen. Das hat aber dann nur im IE funktioniert.
Der scroller funktioniert im IE und im Firefox, NN konnte ich nicht testen, hab ich nicht.
-
so, das mit dem math.round hab ich eingebaut.
ich hab allerdings
bb = Math.round(bb*10)/10;
genommen statt
bb = Math.round(bb);
weil sonst die grafik wenn man von unten kommt ein pixel zu niedrig positioniert wird.
-
hier mein neues script was jetzt endlich mit XHTML funktioniert .
<script type='text/javascript'>
var menu = document.getElementById('name1'); var bb = 0;
function movemenu() {
if (window.innerHeight) {
pos = window.pageYOffset
}
else if (document.documentElement && document.documentElement.scrollTop) {
pos = document.documentElement.scrollTop
}
else if (document.body) {
pos = document.body.scrollTop
}
bb -= pos;
bb *= 0.7;
bb += pos;
bb = Math.round(bb*10)/10;
menu.style.top = bb+25+"px";
setTimeout('movemenu()',40);
}
movemenu();
</script>
Ähnliche Themen
-
AIR, Javascript, setTimeout/setInterval
Von Jean-Luc-Picard im Forum Adobe Flex & AIRAntworten: 0Letzter Beitrag: 30.01.09, 16:31 -
Elemente mit setTimeout() verzögert ausblenden: Probleme mit ID-Übergabe
Von parawaiter im Forum Javascript & AjaxAntworten: 13Letzter Beitrag: 22.03.08, 00:51 -
Unterschied setTimeout() setInterval
Von FipsTheThief im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 13.05.06, 14:50 -
Ausgabe eines Countdown mit setInterval() oder setTimeout()
Von hhjjppww im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 22.08.04, 11:17 -
Probleme mit mouseout <> setTimeout
Von woifh im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 29.08.03, 14:01






Zitieren
Login





