teytey: Scripttaclous

Hallo,

zurzeit versuche ich meine ersten Schritte mit JavaScript, dazu benutze ich das Framework scriptaclous.
Mein Ziel ist es ein Menü aufzubauen das mein Mouse Over automatisch ein Bild ein- bzw. ausfadet.
Wenn man langsam über die einzelnen Menüpunkte geht, funktioniert es auch sehr gut. Ich habe dazu die Queues verwendet die scriptaclous zu Verfügung stellt, um zu verhindern das nicht mehrere Aktionen gleichzeitig ausgeführt werden.
Leider funktioniert das nur im IE und nicht im Firefox dort bleiben, beim schnellen mouseovern, die Bilder im faden stehen und sind z.B. Halbtransparent.
Hat jemand schon einmal so Probleme gehabt und gelöst?

TeyTey

  1. Grüße,
    es ist im allgemeinen eine shclechte idee scripten zu benutzen die du selbst nicht verstehen kanns t- deine frage bedeutet nur, dass du das framework beiseite legen und JS "pure" lernen  solltest.
    selfhtml-artikel sind recht gut
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
    1. es ist im allgemeinen eine shclechte idee scripten zu benutzen die du selbst nicht verstehen kanns t- deine frage bedeutet nur, dass du das framework beiseite legen und JS "pure" lernen  solltest.

      Oder zumindest kein Framework verwenden solltest, welches für absolute Profis gedacht ist.

      Ein Einfacher zu verstehendes Framework wie etwa jQuery oder MooTools ist möglicherweise die schlauere wahl - der riesige Prototype-Brocken ist ohne ausreichende Vorkenntnisse kaum verständlich.

      1. Grüße,
        imho sind alle frameworks für profis, anfänger/alien sollten für einfachere zwecke ein haufen zu übungszwecken geschriebener funktionen haben.
        MFG
        bleicher

        --
        __________________________-

        FirefoxMyth
  2. Hat jemand schon einmal so Probleme gehabt und gelöst?

    in jQuery steht für sowas die stop()-Methode zur Verfügung um sämtliche animationen auf einem bestimmten Element zu stoppen bevor das nächste in der Chain drankommt.

    Wie das in Prototype funktioniert, kann ich dir aber nicht sagen.

  3. Hi,

    Scripttaclous

    Ist das der Santa Claus, der kleinen Webentwicklern Geschenke bringt bzw. bei denen, die immer noch Frames und Tabellen missbrauchen, den Job an Knecht RuprechtOnRails outsourcefreelanced ...?

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  4. Hallo,

    Wenn man langsam über die einzelnen Menüpunkte geht, funktioniert es auch sehr gut.

    [...] im Firefox dort bleiben, beim schnellen mouseovern, die Bilder im faden stehen und sind z.B. Halbtransparent.

    Hat jemand schon einmal so Probleme gehabt und gelöst?

    Ja, das kommt mir bekannt vor.

    Tatsächlich werden Events sozusagen verschluckt bei schnellen Mausbewegungen.

    Das Problem habe ich schließlich gelöst, aber es war recht umständlich. Wenn ich mich recht erinnere, mussten onmouseot eines Containerelements nochmal explizit alle Zustände abgecheckt und ggf. extra auf die gewünschten Werte gesetzt werden. Wenn ein Event einfach nicht auslöst, obwohl es sein sollte, hat man keine andere Wahl.

    Beim Experimentieren ist mir dann aufgefallen, dass es eigentlich auch so sein muss, dass Events verloren gehen. Wäre das nicht der Fall, dann müssten ja bei schnellen Mausbewegungen alle Events in einer Wartesschlange aufgereiht werden, bis sie irgendwann ausgeführt werden können.

    Beim Auslösen von Events per Script ist es mir nämlich so passiert:
    Ein setInterval-Timer ruft ständig in kurzen Abständen eine Funktion auf. Nach je x Aufrufen werden von der Funktion Events ausgelöst, die dazu führen, dass die Seite neu gerendert wird (weil die DOM-Struktur geändert wurde, was man auch laufend sehen will).
    Wenn die Timer-Intervalle aber zu kurz sind, werden die Eventhandler mit ihrem Job nicht rechtzeitig fertig und die Schlange noch aussetehnder Events wächst stetig an... Das konnte ich nur so lösen, dass die Event-Warteschlange von Zeit zu Zeit einfach geleert wird, d.h. man muss de facto ausgelöste Events einfach verwerfen, ohne dass ein Eventhandler zum Zug kommt.

    Wenn ich die Warteschlange nämlich nicht leere, sondern wachsen lasse, dann ergibt sich nach dem Stoppen des besagten Timers eine lange Phase, in der der Bilschirm praktisch einfriert, weil dann erst mal die tausende noch wartender Events abgearbeitet werden. Da sie eh nur soviel bedeuten wie "Zeig's an!", ist das aber unnötig: Mehr als anzeigen kann man nicht, also reicht am Ende einmal, wenn keine neuen mehr Daten vorhanden sind und der Timer gestoppt ist.

    Gruß, Don P