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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как достать координаты мыши? Mozila не хочет подчиняться 
:(
    Опции темы
sagov
Дата 6.12.2005, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Может уже раньше и обсуждалось только я не нашёл в поиске поэтому я к вам вот с чем.
Элементарный скрипт который передвигает картинки в браузере
Код

function updown(id)
{
    X = event.clientX;
    Y = event.clientY;
    document.getElementById(id).style.left=X-5;
    document.getElementById(id).style.top=Y-5;
  
}

id - это id изображения которое надо просто передвинуть
Функция вызывается в <body onMouseMove="updown(id)">
Проблема в чем,а в том что все это работает в IE в Opera,но никак не хочет с Mozila.
Причем проблема на мой взгляд кроется в
Код

   X = event.clientX;
    Y = event.clientY;

Кто может мне помочь?Заранее благодарю.
PM MAIL   Вверх
Zeroglif
Дата 6.12.2005, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



sagov

Посмотри топик про события...

Код

<html>
    <head>
        <title>Move div...</title>
        <script type='text/javascript'>
        function F(e,o)
        {
            e=e||window.event;
            o.style.left=e.clientX;
            o.style.top=e.clientY;
        }
        </script>
        <style type='text/css'>
            #d{position:absolute;border:solid 1px #000}
        </style>
    </head>
    <body onmousemove="F(event,document.getElementById('d'))">
        <div id='d'>слой</div>
    </body>
</html>

PM MAIL WWW   Вверх
sagov
Дата 7.12.2005, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Огромнейшее спасибо.Все пашет.
Ух уж этот привереда Mozila
PM MAIL   Вверх
sagov
Дата 29.3.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Усложняя задачу .Как вытаскивать координаты мыши я разобрался ,теперь встала другая проблема
Вытащить координаты относительно верхнего левого края самой картинки где бы она не находилась.
Как делать это в IE просто ,но опять с Mozila возникают проблемы.
Привожу код как я это делаю в IE
Код

<html><head><title></title></head>
<script>
function onimg(imgElem)
{
   x=event.x;
   y=event.y;
}
</script>
<body>
<div  class='crosshair' style='position:absolute;top:500;left:200'>
<img src='map.gif'   onclick="onimg(this)">
</div>
</body>
</html>
 если использовать вот этот метод он указывает координаты относительно края документа
<script type='text/javascript'>
        function F(e,o)
        {
            e=e||window.event;
            o.style.left=e.clientX;
            o.style.top=e.clientY;
        }
        </script>


а как получить координаты относительно края картинки?
PM MAIL   Вверх
Ciber SLasH
Дата 29.3.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

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



Цитата(sagov @ 29.3.2006, 14:39 Найти цитируемый пост)
Вытащить координаты относительно верхнего левого края самой картинки где бы она не находилась.

event.offsetX, event.offsetY
PM   Вверх
sagov
Дата 1.4.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Опять же в IE нет проблем а как быть с Mozila?
Код

<html>
<head></head>
<script>
function onimg(imgElem,e)
{

  e=e||window.event;
  x = e.offsetX;
  y = e.offsetY;
}
</script>
<body>
<div style='position:absolute;top:50;left:90'><img src='img.gif'    onclick="onimg(this,event)"></div>
</body>
</html>

У кого какие еще предположения?Что не правильно?
PM MAIL   Вверх
Ciber SLasH
Дата 2.4.2006, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

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



sagov, когда возникает событие, то первый параметр в функцию-обработчик отсылается ссылка на объект event, поэтому поменяй местами параметры функции.

И ещё: читай закреплённые темы
http://forum.vingrad.ru/index.php?showtopic=32350
PM   Вверх
Majesty
Дата 28.8.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 20.3.2005
Где: Almaty, Kazakhsta n

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



Вот хорошее (ИМХО) решение.
PM MAIL WWW   Вверх
Astraller
Дата 28.8.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

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



Моё ИМХО:
Код

    FF=!document.all;
    if(FF)e.preventDefault();
    posY=FF?e.pageY:event.y+document.body.scrollTop;
    posX=FF?e.pageX:event.x+document.body.scrollLeft;

У кого проще?  smile 

Это сообщение отредактировал(а) Astraller - 28.8.2007, 14:53


--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
Majesty
Дата 28.8.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 20.3.2005
Где: Almaty, Kazakhsta n

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



Этот вариант хорош всем, кроме того, что ошибается на ~60 px (причём браузерно-зависимо) smile
PM MAIL WWW   Вверх
Astraller
Дата 28.8.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

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



А под каким браузером, если не секрет?
Ибо под IE6/7, FF1-2, Opera 6-9 все ок.


--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
Ghirik
Дата 28.8.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

У кого проще?


У меня   smile  smile  smile 
Код

function m(e){
b.style.top=document.body.scrollTop+e.clientY
b.style.left=document.body.scrollTop+e.clientX}


b - объект
e - event

Везде работает


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Astraller
Дата 28.8.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

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



Плохо проверил. Под IE не пашет.


--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
Ghirik
Дата 28.8.2007, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Под каким IE не работает?


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Astraller
Дата 28.8.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

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



1) Под IE6.1 не пашет.
2) Под Mozilla будет криво ибо надо "px" прибавлять.
3) Требует в обязательном порядке передавать в функцию события.


--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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