Java & JavaScript


Home
Applets
Scripts
   Navigation:
 · Kontextmenü
 · Linkwechsler
   Dialogboxen:
 · Alert
 · Alert 2
 · Confirm
 · Prompt
   Animation:
 · Kreis
 · Kreis 2
 · Kreis 3
 · Drei Kreise
 · Spirale
 · Planetarium
 · Globus
   Grafik-Effekte:
 · Clipping
 · Clipping 2
 · Clipping 3
 · Alpha-Clipping
 · Fading
 · Wellenmuster
 · Wellenmuster 2
   Bildschirmschoner:
 · Proto
 · Marquee
 · Donut
 · Worm
 · Mondrian
 · Pacman
   Datum & Uhrzeit:
 · Countdown
 · Countup
 · Wochentag
 · Last Modified
   Fraktale:
 · Apfelmännchen
 · Apfelmännchen 2
 · Juliamenge
 · Juliamenge 2
 · C-Wert-Generator
   Mathematik:
 · Primzahlen
 · Primzahlen 2
   Verschiedenes:
 · Dynamic Popup
 · TextArea Counter
 · Warteschleife
 · Mausschreiber
Gäste
Kontakt

- JavaScript : Bildschirmschoner : Proto -


Das JavaScript, das Sie schon immer gesucht haben: Ein Online-Bildschirmschoner für die eigene Homepage.

Der Bildschirmschoner (hier Modell "Proto") öffnet sich in 10 Sekunden, wenn Sie die Maus nicht bewegen und keine Taste drücken.

Erfolgreich getestet mit Internet Explorer 5.5 und 6.0.
Netscape oder Opera haben keinen (über JavaScript auslösbaren) echten Fullscreenmodus.

Der Mauszeiger lässt sich allerdings derzeit noch nicht automatisch ausblenden.


Quelltext für die auslösende Seite:

<html>
  <head>
    <title>Bildschirmschoner / Startseite</title>
    <script language="JavaScript">
      ie5=(document.getElementById && document.all && document.styleSheets)?1:0;

      var timer, status=0;
      var x1=0, x2=0, y1=0, y2=0;

      // Bildschirmschoner starten, wenn Timer bei 0
      function timerCheck() {
        if(status==1) {
          timer-=1000;
          if(timer>0) setTimeout('timerCheck()',1000);
          else if(ie5)
              var w=window.open('Proto.html','','fullscreen=1');
        }
      }

      // Auf Mausbewegung prüfen
      function mouseCheck() {
        if(x1==0 && y1==0) {
          x1=event.screenX;
          y1=event.screenY;
          setTimeout('x1=0; y1=0',40);
        }
        x2=event.screenX;
        y2=event.screenY;
        setTimeout('x2=0; y2=0',40);
        if(x1 != x2 || y1 != y2) timerStart();
      }

      // Timer-Startwert setzen oder erneuern und Timer ggf. starten
      function timerStart() {
        timer=10*1000;
        if(status==0) {
          status=1;
          timerCheck();
        }
      }

    </script>
  </head>

  <!-- Event-Abfragen: (onmouseover und oncontextmenu sollen Sonderfälle abdecken) -->
  <body onfocus="timerStart()" onmouseover="timerStart()" onmousemove="mouseCheck()"
      onmouseup="timerStart()" onkeypress="timerStart()" oncontextmenu="status=0"
      onblur="status=0">
  </body>
</html>


Quelltext für die Schonerseite (Modell "Proto"):

<html>
  <head>
    <title>Schonerseite / Modell "Proto"</title>
    <script language="JavaScript">
      var x1=0, x2=0, y1=0, y2=0;

      // Auf Mausbewegung prüfen
      function mouseCheck() {
        if(x1==0 && y1==0) {
          x1=event.screenX;
          y1=event.screenY;
          setTimeout('x1=0; y1=0',40);
        }
        x2=event.screenX;
        y2=event.screenY;
        setTimeout('x2=0; y2=0',40);
        if(x1 != x2 || y1 != y2) close();
      }

    </script>
  </head>

  <body scroll="no" onmousemove="mouseCheck()" onkeypress="window.close()">
    <p>Text</p>
  </body>
</html>

Anmerkungen:

Mit der scheinbar einfachsten Anweisung zum Schließen der Schonerseite: onmousemove="close()" gab es nur Probleme. Innerhalb einer Minute schloss sich das Fenster auch ohne Mausbewegung immer von selbst (???). Deshalb die Abfrage der Mausposition. Ähnliches gilt auch für die auslösende Seite.

Wird der Fokus der auslösenden Seite zwischenzeitlich abgegeben, muss er eventuell neu gesetzt werden, um den Timer wieder zu starten. Zum Beispiel durch einen Mausklick auf die Seite. Zudem läuft der Timer gelegendlich auch dann weiter, wenn der Focus abgegeben wurde. Dieses Fokus-Verhalten ist zwar etwas seltsam, aber in der praktischen Anwendung wohl nicht besonders tragisch. (Soll ja auch nur ein kleiner Gag sein :-)


Download  Proto.zip (ca. 1 kb)




© 2001-2004 Albert Kluge - Alle Rechte vorbehalten
Impressum | Datenschutz | Nutzung | eMail