2010-09-29 5 views
0

Привет, может кто-нибудь помочь в этом?
Когда я переместить указатель мыши на элемент, я хотел бы получить е и у позиции по отношению к <div>Получение указателя мыши по оси x и y относительно элемента

Eg - когда я поставил указатель мыши в верхней левой точке DIV я бы ожидать получить Е 1 и Y в 1.

Это должно быть совместимы для Internet Explorer

Спасибо всем за ваше время.

Это работает, проблема в том, что я вызывал его из события onclick, которое не давало значений scrollLeft и scrollTop. Я должен уметь получить позицию из этого, используя вычисления верхних и левых значений Divs.

function getMouseXY(ctrl)   
{ 
    var tempX = event.clientX + document.body.scrollLeft; 
    var tempY = event.clientY + document.body.scrollTop; 

    document.getElementById('<%=txtXPos.ClientID%>').value = tempX; 
    document.getElementById('<%=txtXPos.ClientID%>').value = tempY; 
} 

Спасибо всем, кроме LincolnK! ! лол

+0

является JQuery вариант для вас, или вам нужно чистое решение JS, не выслать ему рамки ? – meo

+0

благодарит Линкольн за эти добрые слова. –

+0

примеры ive видели, как правило, использовать следующее, чтобы получить координаты позиции мыши var tempX = event.clientX + document.body.scrollLeft; var tempY = event.clientY + document.body.scrollTop; –

ответ

0

Вы могли бы попробовать что-то вроде этого

function myOnMouseMove(element) { 
    var e = window.event 
    var relativeX = e.screenX - element.scrollLeft; 
    var relativeY = e.screenY - element.scrollTop; 
} 
0

Это работа для меня:

function getOffset(el) 
{ 
    var _x = 0; 
    var _y = 0; 
    while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) 
    { 
     _x += el.offsetLeft - el.scrollLeft; 
     _y += el.offsetTop - el.scrollTop; 
     el = el.offsetParent; 
    } 
    return { top: _y, left: _x }; 
} 
var x = getOffset(document.getElementById('MY DIV ID')).left; 
var Y = getOffset(document.getElementById('MY DIV ID')).top; 

function myOnYourEvent() 
{ 
    var relativeX = window.event.clientX; 
    var relativeY = window.event.clientY; 
    var my_div_x = relativeX - x; 
    var my_div_y = relativeY - Y; 
    alert(my_div_x + " " + my_div_y); 
} 
Смежные вопросы