Если вы хотите сделать drag-n-drop самостоятельно, вам может понадобиться один div, заключающий перетаскиваемый div, поэтому вы можете использовать верхнюю часть большего div в качестве перетаскиваемой области.
, у вас есть
<div id='draggablediv' style='backgroundcolor: blue;'>
<div class='draggable' style='position: relative; top: 5em; left: 0em;'>...
</div></div>
Этот код, например, чисто не будет работать, кстати.
Итак, на draggablediv
вы бы поместили обработчик события onclick
, иэто запустит обработчик onmousemove
и обработчик onmouseup
.Последний - отбрасывать, но вы также можете иметь onblur
на тот случай, если мышь переместится за пределы браузера.
Затем, когда мышь перемещается, просто измените положение div, так что эти div должныбыть абсолютным или относительным (абсолютное было бы проще).
Важно удалить обработчики событий, установив их в null при отпускании кнопки мыши.
Если вы не находитесь в области, которую можно сбрасывать, то убедитесь, что div вернул его туда, где он начался, поэтому вам понадобится закрытие, чтобы вы могли запомнить исходные координаты сверху / слева от div.
Вы захотите ознакомиться с этой функцией:
(function g(someval) {
var a = someval;
return h() {
}
})(origval);
Например, поиск getImgInPositionedDivHtml
в http://jibbering.com/faq/notes/closures/
Чтобы изменить z-index
, вы можете захотеть иметь+/- в div и при нажатии на него z-индекс изменяется.
Вот страница, которая говорит об изменении z-index
.
http://msdn.microsoft.com/en-us/library/ms533005(v=vs.85).aspx