ФорумПрограммированиеJavaScript → Координаты мыши

Координаты мыши

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 30 ноября 2008 г. 15:56

    Добрый вечер.
    Наверное задолбал уже темы нубские создавать, но зато в поисковиках чаще мелькать будите =)

    В общем, написал(сплагиатил) скрипт определения координеат мыши.
    Мно в мазиле не работает =(

    function show_claim(id)
    {
    var obj=document.getElementById('left');

    var x = y = 0;
    if (document.attachEvent != null) { // Internet Explorer & Opera
    x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
    }
    if (!document.attachEvent && document.addEventListener) { // Gecko
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
    }

    obj.style.visibility="visible";

    if(parseInt(y)+parseInt(document.getElementById("left").clientHeight)>parseInt(document.body.scrollHeight))
    y=y-parseInt(document.getElementById("left").clientHeight);
    obj.style.left=x+10;
    obj.style.top=y+10;

    }

    Но мазила не понимает вот эту строчку
     x = window.event.clientX + window.scrollX;

    ну и с Y.
    Как быть?
    Ну и на счет этого
    	  if(parseInt(y)+parseInt(document.getElementById("left").clientHeight)>parseInt(document.body.scrollHeight))
    y=y-parseInt(document.getElementById("left").clientHeight);

    Хорошое решение или нужно как то по другому??
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 30 ноября 2008 г. 17:41, спустя 1 час 44 минуты 22 секунды

    Короче, в Gecko нет такого понятия event просто как таковое.
    Там надо перехватить событие onmousemove, формальный параметр функции обработчика - это и будет event. Вот у него уже будут clientX и clientY. Вроде так. Вообще примеров должно быть полно в инете …
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 1 декабря 2008 г. 0:10, спустя 6 часов 29 минут 4 секунды

    угу, делаем
    onmousemove="my_function(event);"


    а там уже:
    function my_function(my_event) {
    var mouseX = my_event.clientX;
    var mouseY = document.body.scrollTop+my_event.clientY;
    }
    все умрут, а я изумруд
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 1 декабря 2008 г. 3:21, спустя 3 часа 11 минут 21 секунду

    md5, и получаем полурабочий код :)

    document.onmousemove = mouseeventhandler; надо делать, function mouseeventhandler(e)
    {
    if(!e) // кроссбраузерный хак.
    {
    e = window.event;
    }
    … далее анализ евента.
    }
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 1 декабря 2008 г. 5:54, спустя 2 часа 33 минуты 16 секунд

Пожалуйста, авторизуйтесь, чтобы написать комментарий!