93 lines
2.6 KiB
JavaScript
93 lines
2.6 KiB
JavaScript
/*Credit JavaScript Kit www.javascriptkit.com
|
|
|
|
includer kan event functie drag_onMouseOut(dragElement) definieren
|
|
en drag_onDragEnd(dragElement)
|
|
|
|
*/
|
|
var evt;
|
|
|
|
var dragapproved=false;
|
|
var dragElement,dragStartX,dragStartY;
|
|
|
|
// show of hide van dragElement scrollde ons navi-frame nogal eens.
|
|
// Het lukte niet om dat te voorkomen dus gewoon positie onthouden
|
|
// en vaak terugzetten.
|
|
var naviTop;
|
|
function dragmove(evt){
|
|
if (!dragapproved)
|
|
return;
|
|
if (!evt.which==1 && !evt.button==1)
|
|
{
|
|
$(dragElement).hide();
|
|
$("#navigationCell").scrollTop(naviTop);
|
|
return;
|
|
}
|
|
if (!evt) evt=event;
|
|
|
|
$(dragElement).show()
|
|
.css('position', 'absolute')
|
|
.css('left', temp1+evt.clientX-dragStartX + "px")
|
|
.css('top', temp2+evt.clientY-dragStartY + "px");
|
|
$("#navigationCell").scrollTop(naviTop);
|
|
return false;
|
|
}
|
|
|
|
// Let op: we gebruiken eigenlijk default.asp/mydragstart
|
|
function dragstart(evt){
|
|
if (!evt) evt=event;
|
|
var srcEl = evt.srcElement || evt.target;
|
|
if (srcEl.className=="draggable")
|
|
{
|
|
/* global */ naviTop = $("#navigationCell").scrollTop();
|
|
clearSelect();
|
|
dragapproved=true;
|
|
dragElement=srcEl;
|
|
temp1=$(dragElement).position().left;
|
|
temp2=$(dragElement).position().top;
|
|
dragStartX=evt.clientX;
|
|
dragStartY=evt.clientY;
|
|
}
|
|
}
|
|
function dragend(evt){
|
|
if (dragapproved)
|
|
{
|
|
dragapproved=false;
|
|
$(dragElement).show()
|
|
.css('left', temp1 + "px")
|
|
.css('top', temp2 + "px");
|
|
$("#navigationCell").scrollTop(naviTop);
|
|
if (typeof drag_onDragEnd == 'function')
|
|
drag_onDragEnd.call(this, dragElement,evt||event);
|
|
}
|
|
}
|
|
function mouseout(evt){
|
|
if (dragapproved)
|
|
{
|
|
clearSelect();
|
|
$(dragElement).hide();
|
|
$("#navigationCell").scrollTop(naviTop);
|
|
if (typeof drag_onMouseOut == 'function')
|
|
drag_onMouseOut.call(this, dragElement,evt||event);
|
|
}
|
|
}
|
|
|
|
function draginit()
|
|
{
|
|
$(document).on("mouseout", mouseout)
|
|
.on("mousedown", dragstart)
|
|
.on("mousemove", dragmove)
|
|
.on("mouseup", dragend);
|
|
}
|
|
|
|
function clearSelect()
|
|
{
|
|
if (document.selection) // IE
|
|
{
|
|
document.selection.clear(); // Is anders irritant
|
|
}
|
|
else
|
|
{
|
|
if (document.getSelection) // Safari
|
|
document.getSelection().removeAllRanges(); // Is anders irritant
|
|
}
|
|
} |