• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

JQuery & Drag

djfabi

Mitglied
Hallo,

ich habe bei SelfHTML etwas gefunden, um ein Div zu 'draggen' .
Habe es nun so geändert, das man nur x draggen kann also nur von links nach rechts, nicht von oben nach unten.

Also hier erstmal der Code:
HTML:
<html>
<head>
<title>Drag-and-Drop</title>
<script type="text/javascript"><!--

//Das Objekt, das gerade bewegt wird.var dragobjekt = null;

// Position, an der das Objekt angeklickt wurde.

var dragx = 0;


// Mausposition

var posx = 0;



function draginit() { // Initialisierung der Überwachung der Events
  
document.onmousemove = drag;  document.onmouseup = dragstop;}


function dragstart(element) {   //Wird aufgerufen, wenn ein Objekt bewegt werden soll.
  
dragobjekt = element;  dragx = posx - dragobjekt.offsetLeft;}


function dragstop() {  //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
  
dragobjekt=null;}


function drag(ereignis) {  //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.
 
 posx = document.all ? window.event.clientX : ereignis.pageX;  
if(dragobjekt != null) {   
 dragobjekt.style.left = (posx - dragx) + "px"; 
 }
}//--></script>

</head><body onload="draginit()">

<div id="drag_eins" onmousedown="dragstart(this)" style="position:absolute;top:0px;left:0px;height:100px;width:100px;background:#ff0000"> </div>

<div onmousedown="dragstart(this)" style="position:absolute;top:200px;left:0px;height:100px;width:100px;background:#00ff00"> </div>

</body></html>

Aber jz mal eine Frage:

Wie bekomme ich es hin, das man es zb nur mindestens nach links 200px und links 600px schieben kann?

Also nur genau in diesem Bereich.

Es soll nicht nach hinten weiterziehbar oder weiter nachvorne sein.

Weil aktuell im Code kann man es beliebig ziehen.

Ich will es also auf einen Bereich 'beschränken' .

Außerdem hätte ich noch eine Frage:

Wie schaffe ich es das ich Z.B. nach left: 600px; auf eine andere Seite weitergeleitet werde?

´Das hier geht nicht:
HTML:
if(document.getElementById('drag_eins').style.left = '600px'){  
  window.location.href = "http://www.google.com";
}

Das geht nicht.


Jz zum 2. Teil:

Wie schafft man es Sachen mit JQuery zu animieren, so das man Effekte bekommt?

Wieviele Effekte gibt es?

Ist jQuery nur für Effekte gut, oder empfiehlt sich da etwas anderes?

Kann man auch eigene Effekte programmieren?

Danke im Vorraus
 
Hallo,



Aber jz mal eine Frage:

Wie bekomme ich es hin, das man es zb nur mindestens nach links 200px und links 600px schieben kann?

In dem du die Positionen für offsetLeft und offsetTop in Variablen auffängst und vor dem Funktionsaufrauf abfragst, ob sie die Werte von 200px und 600px nicht überschreiten. Mit jQuery funktioniert das übrigens einfacher.

Wie schaffe ich es das ich Z.B. nach left: 600px; auf eine andere Seite weitergeleitet werde?

Dafür gibt es die Funktion setTimeout(). Tipp dazu: Mit parseInt() kannst du aus dem Wert "600px" die Zahl extrahieren.

Und zu jQuery gibt es nun wirklich genügend Material im Netz. Die erste Anlaufstelle ist natürlich jquery.com.
 
Zurück
Oben