Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.05.2010, 19:42
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Drag&Drop объекта
Всем привет!
Есть небольшая проблемка перетаскивания объекта в мозилле.
Мозилла воспринимает div, который перетаскивается, как картинку, чтоли и из-за этого див прилипает к курсору, посмотрите сами, плз. В то время как другие браузеры исполняют скрипт как надо. До этого драгом и дропом не интересовался.
var changePosition=null,offX=null,offY=null;
function elemPhysics()
{
	this.move=function a(id,event)
	{
		if(changePosition)
		{
			changePosition=document.getElementById(id);
			var x=event.clientX-offX;
			var y=event.clientY-offY;
			changePosition.style.left=x+"px";
			changePosition.style.top=y+"px";
		}
	}
	this.release=function b()
	{
		changePosition=null;
	}
	this.capture=function c(event)
	{
		offX=event.offsetX || event.layerX;
		offY=event.offsetY || event.layerY;
		if(!changePosition)
		{
			changePosition=document.getElementById("el");
			
		}
	}
}
var element=new elemPhysics();

<body onmousemove="element.move('el',event)">
<div  onmouseup="element.release()" onmousedown="element.capture(event)"  id="el" style="width:300px; height:200px; position:absolute; border:1px solid #000000; background-color:#996600;" ></div>
</body>
Ответить с цитированием
  #2 (permalink)  
Старый 31.05.2010, 20:14
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Ой, не в той теме тему создал)
Ответить с цитированием
  #3 (permalink)  
Старый 16.06.2010, 17:27
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Нашёл в инете
//// отключаем обработку событий по умолчанию, связанных с перемещением блока (это убирает глюки с выделением текста в других HTML-блоках, когда мы перемещаем объект)
if( e.preventDefault ) e.preventDefault(); 
    else e.returnValue = false;

исправленный вариант:
var changePosition=null,offX=null,offY=null;
function elemPhysics()
{
    this.move=function a(id,e)
    {
	e = e || window.event;
	if( e.preventDefault ) e.preventDefault(); 
    else e.returnValue = false;
        if(changePosition)
        {
            changePosition=document.getElementById(id);
            var x=e.clientX-offX;
            var y=e.clientY-offY;
            changePosition.style.left=x+"px";
            changePosition.style.top=y+"px";
        }
    }
    this.release=function b()
    {
        changePosition=null;
    }
    this.capture=function c(e)
    {
	e = e || window.event;
	if( e.preventDefault ) e.preventDefault(); 
    else e.returnValue = false;
        offX=e.offsetX || e.layerX;
        offY=e.offsetY || e.layerY;
        if(!changePosition)
        {
            changePosition=document.getElementById("el");
             
        }
    }
}
var element=new elemPhysics();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект как свойство объекта Cooskon Общие вопросы Javascript 6 16.02.2010 21:41
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 22:46
Теряется event при перемещении объекта (Drag&Drop) seagor Events/DOM/Window 16 25.07.2007 01:28