tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
1115
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Ann Drew
    Ann Drew Ann Drew ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    68
    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:
    <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>
    name1 ist hier der name eines <DIV> tags der ein bild enthaelt.

    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?
     
    have fun
    My page, My forum

  2. #2
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    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!


  3. #3
    Avatar von Ann Drew
    Ann Drew Ann Drew ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    68
    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.
     
    have fun
    My page, My forum

  4. #4
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    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!


  5. #5
    Avatar von Ann Drew
    Ann Drew Ann Drew ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    68
    hallo, hier ist das script wie ich es genau im forum eingebaut habe:
    <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>
    mit XHTML funktioniert immer noch nicht.

    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)
     
    have fun
    My page, My forum

  6. #6
    Avatar von con-f-use
    con-f-use con-f-use ist offline Mitglied Diamant
    tutorials.de Premium-User
    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!


  7. #7
    Avatar von Ann Drew
    Ann Drew Ann Drew ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    68
    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.
     
    have fun
    My page, My forum

  8. #8
    Avatar von Ann Drew
    Ann Drew Ann Drew ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    68
    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.
     
    have fun
    My page, My forum

  9. #9
    Avatar von Ann Drew
    Ann Drew Ann Drew ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    68
    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>
     
    have fun
    My page, My forum

Ähnliche Themen

  1. AIR, Javascript, setTimeout/setInterval
    Von Jean-Luc-Picard im Forum Adobe Flex & AIR
    Antworten: 0
    Letzter Beitrag: 30.01.09, 16:31
  2. Antworten: 13
    Letzter Beitrag: 22.03.08, 00:51
  3. Unterschied setTimeout() setInterval
    Von FipsTheThief im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 13.05.06, 14:50
  4. Ausgabe eines Countdown mit setInterval() oder setTimeout()
    Von hhjjppww im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 22.08.04, 11:17
  5. Probleme mit mouseout <> setTimeout
    Von woifh im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 29.08.03, 14:01