Jörg: Funktion so lange ausführen wie Mauszeiger...

Guten Morgen,

ich möchte die Navigation mit den Scrollbars durch eine Javascript Navigationn ersetzten. Es handelt sich dabei um eine Frame Struktur, wobei die Scrollbars leider etwas optisch stören und ich deshalb auf zwei kleine Grafiken zurückgreifen möchte, welche beim MouseOver das Scrollen des Frames übernehmen. [1]

Der Aufruf sieht zunächst ganz einfach aus:

<a href="#" onMouseOver="javascript:scrollnavidown()"><img src="grafik" border="0" alt=""></a>

Die dazugehörige Funktion übernimmt das Scrollen:

function scrollnavidown() {
           setTimeout("parent.bildnavi.scrollBy(0,-10)",10);
}

Leider wird die Funktion ja nur einmal ausgeführt - nämlich immmer nur dann wenn man mit der Maus über die Grafik fährt.

Ich möchte es jedoch so ändern, dass die Funktion solange ausgefhrt wird, wie der Mauszeiger auf/über der Grafik liegt.

Die Funktion in eine while(true) { ... } - Schleife zu packen würde mir eine Endlosschleife produzieren, was ich ja nicht möchte. Auch das Beenden der Funktion per onMouseOut sollte vermieden werden.

Ich wäre für jeden Gedankenanstoss dankbar!

Jörg

[1] Ja, ich weiss dass ich einige Benutzer damit aussperren könnte, wenn ich keine JavaScriptfreie Version erstelle...

Wenn das Wörtchen "Wenn" nicht wär'...

  1. Einfach über onMouseout das ganze weitersteuern.........
    ............onMouseout="scrollnaviup()" z.b.

    Guten Morgen,

    ich möchte die Navigation mit den Scrollbars durch eine Javascript Navigationn ersetzten. Es handelt sich dabei um eine Frame Struktur, wobei die Scrollbars leider etwas optisch stören und ich deshalb auf zwei kleine Grafiken zurückgreifen möchte, welche beim MouseOver das Scrollen des Frames übernehmen. [1]

    Der Aufruf sieht zunächst ganz einfach aus:

    <a href="#" onMouseOver="javascript:scrollnavidown()"><img src="grafik" border="0" alt=""></a>

    Die dazugehörige Funktion übernimmt das Scrollen:

    function scrollnavidown() {
               setTimeout("parent.bildnavi.scrollBy(0,-10)",10);
    }

    Leider wird die Funktion ja nur einmal ausgeführt - nämlich immmer nur dann wenn man mit der Maus über die Grafik fährt.

    Ich möchte es jedoch so ändern, dass die Funktion solange ausgefhrt wird, wie der Mauszeiger auf/über der Grafik liegt.

    Die Funktion in eine while(true) { ... } - Schleife zu packen würde mir eine Endlosschleife produzieren, was ich ja nicht möchte. Auch das Beenden der Funktion per onMouseOut sollte vermieden werden.

    Ich wäre für jeden Gedankenanstoss dankbar!

    Jörg

    [1] Ja, ich weiss dass ich einige Benutzer damit aussperren könnte, wenn ich keine JavaScriptfreie Version erstelle...

    Wenn das Wörtchen "Wenn" nicht wär'...

    1. Hallo,

      Einfach über onMouseout das ganze weitersteuern.........

      Wäre nett, wenn Du es etwas genauer formulieren könntest, wie ich das steuern soll.

      ............onMouseout="scrollnaviup()" z.b.

      Und was soll diese Funktion machen?

      Jörg

      Die Funktion in eine while(true) { ... } - Schleife zu packen würde mir eine Endlosschleife produzieren, was ich ja nicht möchte. Auch das Beenden der Funktion per onMouseOut sollte vermieden werden.

      1. Moin,

        das ganze kannst Du in etwa wie folgt machen (nicht getestet).
        Zunächst definierst Du eine Variable

        var enable = 0;

        mit der gesteuert wird, ob die Animation läuft oder
        nicht. Die Steuerung geht dann mit drei Funktionen:

        function do_it() {
          if (enable==1) {
            animation();    // Deine Animations-Routine
            window.setTimeout("do_it()", zeit_in_ms);
          }
        }

        function start_it() {
          enable=1;
          do_it();
        }

        function stop_it() {
          enable=0;
        }

        Das ganze wird dann über den Link gesteuert

        <a href="#" onMouseOver="javascript:start_it();"
           onMouseOut="javascript:stop_it();" >

        Viele Grüße

        Andreas

        1. Hi!

          das ganze kannst Du in etwa wie folgt machen (nicht getestet).
          Zunächst definierst Du eine Variable
          mit der gesteuert wird, ob die Animation läuft oder
          nicht. Die Steuerung geht dann mit drei Funktionen:

          Das ganze wird dann über den Link gesteuert

          Ja, danke für den guten Denkanstoss. Die Funktionen haben so funktioniert.

          Ich hatte zunächst angenommen, dass man in der Funktion die die Aktion/Animation auslöst stets überprüft, ob der Mauszeiger sich noch über dem Link befindet. Das sollte dann die Abbruchbedingung sein.

          Vielen Dank!

          Jörg