Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Drag&Drop не работает в FF, Не срабатывает перехват события 
:(
    Опции темы
alexesuser
Дата 9.2.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.2.2009

Репутация: нет
Всего: нет



Написал фрагмент кода по перетаскиванию слоя. В IE все работает, а при открытии этой страницы в FireFox перетаскивание не работает, а срабатывают собственные функции браузера. Как можно это исправить?
Код

<div style="position: absolute; width: 65px; height: 93px; z-index: 1; left: 327px; top: 55px" id="layer1">

<img id="image"src="1.gif" ></div>

<script>
var shx,shy;
var x=0, y=0, x1=0, y1=0;
var drag=0;

function layer1.onmousedown()
{
drag=1;
x=window.event.clientX;
y=window.event.clientY;
}


function layer1.onmouseup()
{
drag=0;
}

function layer1.onmousemove()
{
if (drag==1) 
   {
   x1=window.event.clientX;
   y1=window.event.clientY;
   shx=x1-x;
   shy=y1-y;
   document.getElementById('layer1').style.left=layer1.offsetLeft+shx;
   document.getElementById('layer1').style.top=layer1.offsetTop+shy;
   
   x=x1;   y=y1;
   return false; //отключение функции браузера на перехват события
   }
}



Это сообщение отредактировал(а) alexesuser - 9.2.2010, 17:45
PM MAIL   Вверх
comtat
Дата 9.2.2010, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 4
Всего: 71



Код

<div style="position: absolute;border:1px solid red;width: 65px; height: 93px; z-index: 1; left: 327px; top: 55px;" id="layer1">
<img id="image" src="1.gif" ></div>
<script>
var shx,shy;
var x=0, y=0, x1=0, y1=0;
var drag=0;
var isIE = /*@cc_on!@*/false;
var layer1 = document.getElementById('layer1');

layer1.onmousedown = function(e){
    drag=1;
    if (!e) e = window.event;
    y = isIE ? e.clientY + document.body.scrollTop : e.pageY;
    x = isIE ? e.clientX + document.body.scrollTop : e.pageX;
}
layer1.onmouseup = function(e){
    drag=0;
}
layer1.onmousemove = function(e){
    if (!e) e = window.event;
    if (drag==1) {
        y1 = isIE ? e.clientY + document.body.scrollTop : e.pageY;
        x1 = isIE ? e.clientX + document.body.scrollTop : e.pageX;

        layer1.style.left=layer1.offsetLeft + (x1-x);
        layer1.style.top=layer1.offsetTop + (y1-y);
   
        x=x1;
        y=y1;
   }
}
</script>


Добавлено через 12 минут и 10 секунд
Либо так ..
Код

<script>
var isIE = /*@cc_on!@*/false;
function $(v) { return(document.getElementById(v)); }
function xy(e,v) { return(v?(isIE?event.clientY+document.body.scrollTop:e.pageY):(isIE?event.clientX+document.body.scrollTop:e.pageX)); }
function dragOBJ(d,e) {
    function drag(e) { if(!stop) { d.style.top=(tX=xy(e,1)+oY-eY+'px'); d.style.left=(tY=xy(e)+oX-eX+'px'); } }
    var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop;
    document.onmousemove=drag; document.onmouseup=function(){ stop=1; document.onmousemove=''; document.onmouseup=''; };
}
</script>
<div style="position:absolute;border:1px solid red;width:65px;height:93px;z-index:1;left:327px;top:55px;" onmousedown="dragOBJ(this,event);return false;" id="layer1">



--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
12345c
Дата 9.2.2010, 19:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Цитата

if(!stop)

!self.stop
Цитата
var isIE = /*@cc_on!@*/false;

isNoIE =-[1,]; //так ещё короче и без /**/, и вообще, эти 5 символов можно ставить на месте "(isIE?".


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
comtat
Дата 10.2.2010, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 4
Всего: 71



12345c, спасибо за науку ..


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.