mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 18:17 Benutzername: Passwort: Auto-Login

Thema: DIV Container nach rechts/links bewegen? vom 26.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> DIV Container nach rechts/links bewegen?
Autor Nachricht
gotoAndPlay
Threadersteller

Dabei seit: 22.11.2006
Ort: -
Alter: 40
Geschlecht: Männlich
Verfasst Di 26.06.2007 21:54
Titel

DIV Container nach rechts/links bewegen?

Antworten mit Zitat Zum Seitenanfang

Ich suche ein Script - habe schon im forum und über google gesucht - mit dem ich einen DIV per Knopfdruck nach Links bzw. Rechts bewegen kann.

Ich denke das man das mit einer Verbindung von Java Script und beim DIV mit nem overflow lösen kann.
Hat jemand nen Vorschlag oder am besten direkt nen Code wie ich meinen DIV Container bewegen kann?

Die Rheinische Post teasert so ihre Bildergalerien an:

www.rp-online.de

Einfach etwas runter scrollen!!
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 26.06.2007 22:00
Titel

Antworten mit Zitat Zum Seitenanfang

http://www.mediengestalter.info/forum/4/slimbox-horizontale-slidebar-86530-1.html
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Mi 27.06.2007 00:13
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Ich suche ein Script - habe schon im forum und über google gesucht - mit dem ich einen DIV per Knopfdruck nach Links bzw. Rechts bewegen kann.

Das ist nicht allzu schwer.

Zitat:
Ich denke das man das mit einer Verbindung von Java Script und beim DIV mit nem overflow lösen kann.

JavaScript ist klar. Aber wieso overflow, um ein Layer zu bewegen?

Zitat:
Die Rheinische Post teasert so ihre Bildergalerien an:

Kann ich mir leider gerade nicht anschauen. Momentan komme ich nicht auf die Site...

Zitat:
Hat jemand nen Vorschlag oder am besten direkt nen Code wie ich meinen DIV Container bewegen kann?

Ich hab dir ein kleines Beispielscript geschrieben.
Ist eine komplette HTML-Seite. Kopier mal den Code raus, speichere das als irgendwas.html ab und rufe die Datei auf.
Dort ist dann ein Layer zu sehen. Wenn du drauf klickst, bewegt es sich.
Ich denke, man kann das Prinzip recht gut erkennen.
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="de">

<head>
   <meta http-equiv="content-language" content="de">
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-15">
   <meta name="author" content="rob">

   <title>Layer wandert</title>
   
   <style type="text/css">
      #layer   {
         width: 200px;
         height: 40px;
         position: absolute;
         top: 10px;
         left: 10px;
         z-index: 1;
         background-color: red;
         color: #000;
         font-weight: bold;
         cursor: pointer;
      }
   </style>
   
   <script type="text/javascript">
      var i = 10;
      
      function wandern()
      {
         if ( document.all ) // für den alten MSIE
         {
            document.all.myLayer.style.left = i + "px";
            document.all.myLayer.style.top = i + "px";
         }
         else if ( document.layers ) // für Netscape
         {
            document.myLayer.left = i + "px";
            document.myLayer.top = i + "px";
         }
         else if ( document.getElementById ) // für moderne Browser
         {
            document.getElementById('myLayer').style.left = i + "px";
            document.getElementById('myLayer').style.top = i + "px";
         }
         
         i = i + 10;
         window.setTimeout( 'wandern()', 100 );
         
         if ( i > ( screen.height - 180 ) )
         {
            i = 0;
         }
      }
   </script>   
</head>



<body>

   <div id="myLayer" onclick="wandern();">Ich bin ein Layer. Klick mich und ich bewege mich.</div>   
   
</body>
</html>

Noch ein paar Erklärungen, wenn du das Script ändern willst:
Das Script ist so programmiert, daß es eigentlich in jedem Browser laufen sollte.
Ich frage dafür nicht nach einem Browsernamen (der könnte falsch sein), sondern frage nach bestimmten Eigenschaften und arbeite damit, wenn diese vorhanden sind.
document.all ist nur dem alten MSIE bekannt, document.layers dem alten Netscape und die DOM-Methode document.getElementById ist den aktuellen Browsern bekannt.
Damit sollte das Script eigentlich überall funktionieren. Wenn dir die alten Browser egal sind, kannst du den Code natürlich kürzen. So ist es halt quasi dreifach programmiert.
Über top und left (im CSS-Code) positioniere ich das Layer. Das Layer bewege ich, indem ich diese Werte verändere.
Im Beispiel bewegt sich das Layer nach schräg unten. Den Pixelwert habe ich in der Variablen i gespeichert.
Wenn du das Script so ändern willst, so daß du die Bewegung besser steuern kannst, solltest du zwei Variablen (i und j) einsetzen. Dann kannst du die Angabe von top und left einzeln steuern. Jetzt nehme ich ja für beides immer den gleichen Wert.

Durch das i = i + 10; lege ich fest, daß das Layer immer in 10-Pixel-Schritten verschoben werden soll. Ist dieser Wert zu groß, "springt" das Layer anstatt einer flüssigen Bewegung.
Und damit sich das Layer halt immer weiter bewegt, wird die Funktion wandern() dann über window.setTimeout( 'wandern()', 100 ); alle Hundert Millisekunden aufgerufen.

Was noch? Ganz zum Schluß kommt noch eine if-Abfrage. Wenn das Layer dann über den Screen hinauswandern will, wird der Positionswert damit wieder auf 0 gesetzt.
Das funktioniert nur dann wirklich anständig, wenn man mit maximiertem Browserfenster arbeitet.
Wenn du sich Sache wirklich genau angehen willst, dann solltest du nicht mit den Screen-Maßen, sondern mit der Viewportgröße arbeiten.
Ich habe das der Einfachheithalber jetzt aber nicht getan.
Wenn du wissen willst, wie du das machst, dann schau hier.


Zuletzt bearbeitet von rob am Mi 27.06.2007 00:23, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Bild von rechts nach links bewegen lassen
Flash Grafik per Mouseover nach links oder rechts bewegen
[CSS] Container verschiebt sich in IE nach rechts
[CSS] Element rechts oben in DIV-Container verankern
Container rechts unten, jedoch von footer schieben lassen
Rechts Links td background=
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.