You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Saturday, April 19th 2008, 11:54pm

boxen, drag'n'drop, resize

Hi,

ich suche für ein Projekt eine Möglichkeit Boxen/Gadgets/Portlets/... zu integrieren.
Dazu hab ich diesen Post gelesen: http://www.easy-coding.de/ajax-drag-und-…ogle-t4977.html
Allerdings findet dort die Verschiebung nur in Spalten statt. Ich möchte 3-5 Boxen anbieten, bei denen man die Größe ändern kann, sie hinzufügen, löschen, (beliebig) umherschieben kann und irgendwann die Position(en) mal in der Datenbank abspeichern kann. Alle Boxen sollten in einem Rahmen verschiebbar sein.

Meine Frage ist eigentlich nur, ob jemand eine Bibliothek oder sonstiges kennt, welche dies ermöglicht.

Danke im Voraus,

bye

2

Sunday, April 20th 2008, 12:26pm

EDIT... achso.. du meinst frei im Raum... ist ja eigentlich viel einfacher zu implementieren, als mit den Boxen, aber eine Bibliothek dazy kenne ich keine

3

Sunday, April 20th 2008, 1:49pm

Hi,

ja genau, ich meine in einem freien aber festgelegten Raum, also z.B. in einem div von fester Breite und Höhe.
Also werd ich mir ein JS-Framework hernehmen (müssen) und diese Funktionalitäten selbst implementieren müssen.

Naja mal schauen, ob und wie ich das hinbekomme :huh:

Falls dennoch jemand eine schon vorhandene Implementierung kennt, immer her damit 8o

bye

EDIT:

Ich habe mittlerweile eine Möglichkeit gefunden, wie man "draggable and resizable" hinbekommt. Zumindest theoretisch. Praktisch läuft es bei mir nicht, auf der Seite vom Autor läufts, bei mir komischerweise nicht.
Das Script ist ein PlugIn für jquery: http://dev.iceburg.net/jquery/jqDnR/
Ich bekomme im Firebug folgenden Fehler:

Source code

1
2
3
4
5
6
7
$("#ex3").jqDrag is not a function
(no name)()index.html (line 30)
to the wait list jQuery.readyList.push()jquery.js (line 2274)
(no name)()jquery.js (line 2294)
each([function()], function(), undefined)jquery.js (line 751)
ready()jquery.js (line 2293)
[Break on this error] $('#ex3').jqDrag('.jqDrag');


Habe alles so implementiert wie auf der Seite beschrieben.
html:

HTML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
<script type="text/javascript">
						$().ready(function() {
							$('#ex3').jqDrag('.jqDrag').jqResize('.jqResize');
						});
					</script>
					<div id="ex3" class="jqDnR">
						<div class="jqHandle jqDrag"></div>
						<br />
						I am an example Box "#ex3"<br />
						Using the Handles, you can *RESIZE*
						and *DRAG* me.
						<div class="jqHandle jqResize"></div>
					</div>
...

Ich benutze die aktuelle Version von jquery (1.2.3), habe aber auch die in dem Beispiel verwendete Version probiert. Ohne Erfolg.

Ich frage mich nun warum diese Fehlermeldung zustande kommt. Wenn ich dieses Problem lösen könnte, bräuchte ich nur noch das Verschieben in einem festgelegten Raum lösen.

Vielleicht könnt ihr mir helfen :S

Bye

This post has been edited 1 times, last edit by "mad" (Apr 21st 2008, 9:06pm)


4

Monday, April 21st 2008, 9:13pm

Sorry für Doppelpost!

Soeben hab ich den Beitrag über ui.jquery gesehen. Das scheint mein Problem zu lösen. Ich probier das mal und gebe dann Feedback!

Grüße,
mad

UPDATE:

Ich habe es jetzt hinbekommen. Draggable & Resizable Boxes sozusagen.
Es ist mit ui.jquery recht einfach.

Codeschnipsel:

JavaScript Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(document).ready(function(){
  	$(".dNr").resizable({ autohide: true, 
  					handles: 'all',
  					proxy: 'proxy' });
        $(".dNr").draggable({ containment: 'parent', 
  					revert: false,
  					stop: function(e, ui) {
  							//handle saving of data in a cookie here with ajax
  							/* 
  							//necessary data:				
  							alert("links: "+ui.position.left+", oben: "+ui.position.top+
  							", width: "+$(this).width()+", height: "+$(this).height() );
  							*/
  						} 
  					});
  });


Was ich jetzt noch machen muss ist die Position nach dem draggen in einem Cookie speichern und beim nächsten Besuch der Seite wieder auszulesen. Das wird lustig =)
Wenn ich damit fertig bin, kann ich ja ein kurzes HowTo im Wiki posten...

bye

This post has been edited 2 times, last edit by "mad" (May 5th 2008, 5:18pm)


Social bookmarks