Форум → Программирование → JavaScript → Хочу двигать DIV мышкой
Хочу двигать DIV мышкой
-
хочу и все тут =)
вобщем навыки имеются, но прежде чем начать
хочу спросить совета чтоли кто делал
логика примерно такая:
ловим событие onmousedown… координаты мыши нужны, дива…
дальше… надо ловить mouse move? или че? + смотреть чтобы на рамки окна не вываливался
если всякие интересные плагины к прототайпу, но если они мне не нужны?все умрут, а я изумруд -
15 апреля 2008 г. 13:06, спустя 8 минут 4 секунды
Ну да mousemove, onmousedown и onmouseup.
Я когда-то писал. Вот скрипт. Только он древний как гавно мамонта. Так что надо тестить и перерабатывать. Но за базовый можно принять:
<div id="WIND" style="position:absolute; width:200px; height:200px; left:120px; top:120px; border : solid 1px red">
Тест
</div>
<script language="JavaScript1.2">
// Зона за которую можно таскать
var x = 0;
var y = 0;
var w = 100;
var h = 100;
document.onmousemove = MouseEvent;
document.onmousedown = MousePress;
document.onmouseup = MouseUnPress;
var browser = navigator.appName;
var ver = parseInt(navigator.appVersion);
if (browser != "Microsoft Internet Explorer")
{
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
document.captureEvents(Event.MOUSEMOVE);
obj = document.getElementById('WIND');
}
else
{
document.onselectstart = checkEl;
document.ondragstart = checkEl;
obj = document.all.item('WIND');
}
function checkEl()
{
return false;
}
var pressflag = false;
var oldcursx, oldcursy;
var firstflag = true;
var flag = false;
function MouseEvent(ev)
{
windx = parseInt(obj.style.left);
windy = parseInt(obj.style.top);
cursx = (browser == "Microsoft Internet Explorer") ? event.clientX : ev.clientX;
cursy = (browser == "Microsoft Internet Explorer") ? event.clientY : ev.clientY;
if(firstflag)
{
oldcursx = cursx;
oldcursy = cursy;
firstflag = false;
}
if (flag) {
obj.style.left = windx + cursx - oldcursx;
obj.style.top = windy + cursy - oldcursy;
}
oldcursx = cursx;
oldcursy = cursy;
}
function MousePress()
{
if ( (cursx > windx+x) &&
(cursy > windy+y) &&
(cursx < windx+x+w) &&
(cursy < windy+y+h) )
{
obj.style.cursor = "move";
flag = true;
}
}
function MouseUnPress()
{
if (flag)
{
pressflag = flag = false;
obj.style.cursor = "auto";
}
}
</script> -
-
15 апреля 2008 г. 13:17, спустя 5 минут 58 секунд
Если совсем грамотно подходить к вопросу, надо писать behavior для IE и XBL для Gecko.
Чтоб одним классом задавать поведение диву. В общем копать и копать … )) -
15 апреля 2008 г. 13:28, спустя 10 минут 47 секунд
ну вот, так всегда…
Если совсем грамотно подходить к вопросу, надо писать behavior для IE и XBL для Gecko.
Чтоб одним классом задавать поведение диву. В общем копать и копать … ))все умрут, а я изумруд -
18 августа 2012 г. 22:19, спустя 1586 дней 8 часов 51 минуту
По деревне шли два деда,
Толковали так и сяк,
Один дед другого деда
Хуем по хую хуяк!
Пожалуйста, авторизуйтесь, чтобы написать комментарий!