|
Commands available for Drag'nDrop Elements
Global commands, taking effect on all Drag Drop
elements, are to be passed to SET_DHTML() as separate arguments.
Individual commands, on the other hand, are to be appended,
with a plus sign as concatenator, directly to the name/ID of the
concerned element. See examples below.
|
CLONE (individual, images only) |
Drag this image around... CLONE
creates a static copy, devoid of draggability and DHTML
capabilities. Example:
<script
type="text/javascript"> <!--
SET_DHTML("layer1", "dolly"+CLONE, "image1", "image3"+CLONE);
//--> </script>
| |
COPY (individual, images only) |
Creates a specifiable number of copies, each being
a fully capable DHTML and Drag&Drop item by its own.
Copies even inherit their originals' NO_ALT, RESET_Z,
RESIZABLE, SCALABLE, SCROLL and size-limiting commands
(MAXWIDTH etc.). Be carefull with large numbers of copies;
large image file sizes combined with the presence of many drag
drop images might challenge the visitors' browsers. SET_DHTML("layer1", "muckl"+COPY+5, "anotherImg");
|
CURSOR_HAND (global and individual, images and
layers) |
Alters the cursor over drag and drop items. Does not work
in Netscape 4 and Opera earlier than ver. 7.
Available cursor commands: CURSOR_DEFAULT
(preset; default cursor of browser) CURSOR_CROSSHAIR
CURSOR_MOVE (globally set on this page) CURSOR_HAND
(pointer, as over links) CURSOR_E_RESIZE
CURSOR_NE_RESIZE CURSOR_NW_RESIZE CURSOR_N_RESIZE
CURSOR_SE_RESIZE CURSOR_SW_RESIZE CURSOR_S_RESIZE
CURSOR_W_RESIZE CURSOR_TEXT (as over text)
CURSOR_WAIT (hourglass or something similar)
CURSOR_HELP SET_DHTML(CURSOR_MOVE, "layer1", "koala"+CURSOR_HAND, "image1");
This example, illustrating again how to use commands
globally and individually, also intimates that individual
commands override global ones. |
DETACH_CHILDREN (individual, layers only) |
The default behavior of a drag drop layer
is as follows: If the layer contains images which have been
set draggable by their own (i.e. their names have been passed
to SET_DHTML() too), the library considers these images as
"children" of the layer. Once the layer is dragged, hidden or shown, its children
automatically follow it. The DETACH_CHILDREN command detaches
images from their parent layer, making them independent from
the layer's behavior (example: hide() and show() again). SET_DHTML("LayerName"+DETACH_CHILDREN, "image2", "image1", "layer2");
|
HORIZONTAL (individual, images and layers)
|
The element can be dragged
horizontally only. However, the item's moveTo() and
moveBy() methods by their own aren't affected.
Therefore movements in both directions via scripting are
unlimited. SET_DHTML("FirstImg", "lguana"+HORIZONTAL);
|
MAXWIDTH, MAXHEIGHT, MINWIDTH,
MINHEIGHT (individual, images and layers) |
These commands limit the size
to which an element can be resized with mouse+<SHIFT>, a
functionality feasible for elements to which the
RESIZABLE or SCALABLE command has been
applied. Note: Default setting, if MINWIDTH / MINHEIGHT
haven't been applied, for mimimum width and height is
1 px. SET_DHTML("deddie"+RESIZABLE+MAXWIDTH+420+MINHEIGHT+45, "anotherImg");
|
MAXOFFBOTTOM, MAXOFFLEFT, MAXOFFRIGHT,
MAXOFFTOP (individual, images and layers) |
These commands specify how far the item can be maximally
dragged away from its default position. To each of these
commands, its value must be appended with a plus sign. For
example, by combining MAXOFFLEFT and MAXOFFRIGHT with
HORIZONTAL (allowing horizontal movements only), an image
might be converted into a horizontal slider with stops.
The following code
demonstrates how you can build a slider by using just two
images (named "thumb" and "track"). As always with
SET_DHTML(), this code should be inserted immediately before
the closing </body> tag.
<script
type="text/javascript"> <!--
SET_DHTML("thumb"+MAXOFFLEFT+45+MAXOFFRIGHT+45+HORIZONTAL,"track"+NO_DRAG);
dd.elements.thumb.moveTo(dd.elements.track.x+36,
dd.elements.track.y);
dd.elements.thumb.setZ(dd.elements.track.z+1);
dd.elements.track.addChild("thumb");
dd.elements.thumb.defx = dd.elements.track.x+36;
//--> </script>
| About these lines: To prevent
the slider track from being draggable, we apply the NO_DRAG
command to it. Then, after SET_DHTML() has been invoked and
while the page is still loading, the thumb is moved to the
center of the track (moveTo() method, visit the API
reference for more details). To ensure the right visual
"stacking order" of these images initially, the third
JavaScript line sets the z-index (setZ() method) of the thumb
beyond the track's. Then, by transforming it into a "child"
and hence "sub-image" of the track, the thumb's position and
behavior is made dependent from the track's - especially
important for window resize events. The last JS line sets the
thumb's default x position (defx) to the center of the track.
To retrieve the current position
of the thumb (current x minus default x coordinate,
dd.elements.thumb.x-dd.elements.thumb.defx ),
use my_DragFunc(), an empty function body for
additional/extended scripting. my_DragFunc(), already included
into the library, is automatically and permanently invoked
while an item is dragged (see API
reference). The above example calculates a color from the
positions of the three slider thumbs. Then, still from inside
my_DragFunc(), the API's setBgColor() method of the
transparent image is invoked. |
NO_ALT (global and individual, images only)
|
De-activates the ALT and
TITLE attributes of the concerned image. Globally (affecting all drag drop images at once):
SET_DHTML(NO_ALT,
"ImgName1", anotherImg"); Individually: SET_DHTML("ImgName1"+NO_ALT, anotherImg", "img3"+NO_ALT);
|
NO_DRAG (individual, images
and layers) |
Disables Drag'nDrop capabilities and converts item into a
"normal" DHTML element (wz_dragdrop.js may be used as general
DHTML library). Access to the item's properties and methods
via scripting, however, remains unlimited, for example reading
coordinates and size, moving, resizing, hiding, showing again,
swapping images etc.. NO_DRAG may
even be useful for the 'Image Buoy' trick which allows to
integrate an absolutely positioned layer into the logical
structure of a page: 1.) Place one or several
non-draggable (NO_DRAG!) transparent 1x1 px images as 'bouys'
into the logical structure or text flow whereever required.
2.) Retrieve the co-ordinates of these invisible images
by their x and y properties (see DHTML-API),
and, 3.) simply by invoking its moveTo() method
accordingly, place the layer relatively to these Image Buoys.
For example, the small blue layer moving around this text
paragraph is controlled by such Image Buoys. SET_DHTML("blueLayer"+NO_DRAG, "lefttop"+NO_DRAG, "rightbottom"+NO_DRAG);
|
RESET_Z (global and individual, images and
layers) |
As default behavior, once a drag-drop item starts to be
dragged, its z-index (its place in the visual stacking order
of all elements) is lifted to the top level, and remains there
after drag-end. The RESET_Z command restores the element's
original z-index once the element is dropped. Due to drag-drop
intuitivity issues, I don't recommend to use this command
unnecessarily. SET_DHTML("layer1", "image2"+RESET_Z, "image1");
|
RESIZABLE (global and individual, images and
layers) |
Allows an element to be resized instead of
dragged. Keeping the <Shift> key pressed at the
beginning of a drag movement lets the left top corner of the
element stay fixed whereas the right and bottom boundaries
follow the mouse movement. RESIZABLE (and SCALABLE, see below)
Mode mode works even with Netscape 4 und Opera 5+.
SET_DHTML("layer1", "img1"+RESIZABLE, "anotherImg");
|
SCALABLE (global and individual, images and
layers) |
Being an alternative to
RESIZABLE, SCALABLE preserves the width/height ratio of the
element. In other words, SCALABLE enables the element to be
scaled, but, contrary to RESIZABLE, not to be arbitrarily
stretched. Note about SCALABLE and RESIZABLE: If
one of these commands has been applied globally and the other
one individually, only the individual command, overriding the
global one, takes effect on the concerned element. SET_DHTML("image1", "image2"+SCALABLE);
|
SCROLL (global and individual, images and
layers) |
Enables the Auto-Scroll functionality which scrolls the
page automatically when the mousepointer approaches the window
boundary during a drag operation. Thereby scrolling velocity
is non-linearly determined by the remaining distance of the
border, giving the impression that the scrolling velocity
depended from the "pressure" executed towards the boundary.
BTW, on these pages the SCROLL command has been applied
globally. SET_DHTML(SCROLL, "blueLayer", "image2", "image1", "layer2");
or SET_DHTML("blueLayer"+SCROLL, "image2", "image1", "layer2");
|
TRANSPARENT (global and individual, images and
layers) |
Makes the item semi-transparent
while it is being dragged. This command takes effect in
Gecko-Browsers (Mozilla, Firefox etc.) and Windows-IE.
(Yes, that's me.) |
VERTICAL (individual, images and layers) |
Element can be dragged
vertically only. However, the item's moveTo() and
moveBy() methods by their own aren't affected.
Therefore movements in both directions via scripting are
unlimited. SET_DHTML("FirstImg", "snake"+VERTICAL);
| |
Combine
commands? Global commands affect all drag drop
elements and must be passed to SET_DHTML() as separate arguments,
separated with commas from each other: SET_DHTML(NO_ALT,CURSOR_MOVE, "ImgName1","layerName","anotherImg");
To apply multiple individual commands to a certain drag
drop element, use plus signs as connectors, as in the example below:
SET_DHTML("layer1", "muckl"+VERTICAL+COPY+5+RESET_Z, "otherImg");
|
Notes
| |
|