2015-05-20 3 views
1
var mousemove = function(event) { 
    var xpos = event.x || event.clientX; 

    console.log(xpos); 
} 

window.addEventListener('mousemove', mousemove); 

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

Этот код используется в навигационной системе off-canvas. Я работаю над вычислением, если мышь меньше, чем на 5% слева от экрана (где находится навигационная система).

Любые идеи о том, как правильно играть, были бы замечательными.

+1

Проверить это ... http://www.jacklmoore.com/notes/mouse-position/ –

+0

Awesome, я буду проверить это и получить обратно к вам. Кажется, screenX - это тот, который мне нужен. – nblackburn

+0

Работает как сон, благодаря этому чрезвычайно полезному ресурсу. – nblackburn

ответ

0

Поблагодарите Tero за предоставленный ресурс и помогите мне исправить это, пожалуйста, найдите пересмотренный код ниже.

var mousemove = function(event) { 
    var xpos = event.screenX; 

    console.log(xpos); 
} 

window.addEventListener('mousemove', mousemove); 
0

Существует много способов сделать это. Один из способов - использование jquery

$ (window) .mousemove (function (event) {console.log (event.clientX);});

+0

Спасибо за ответ, но вопрос для родного JavaScript. – nblackburn

0

Эта функция возвращает положение мыши относительно окна просмотра или относительно страницы.

var getMousePosition = function(e, relativeToViewport) { 
     var x = relativeToViewport ? e.clientX : e.pageX || e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; 
     var y = relativeToViewport ? e.clientY : e.pageY || e.clientY + document.body.scrollTop + document.documentElement.scrollTop; 

     return { 
      x: x, 
      y: y 
     }; 
    }; 
+0

'e.clientX' - проблема, вызывающая меня в IE, поскольку она относится к целевому элементу, который, похоже, переключается. – nblackburn

+0

работает отлично для меня в IE9 +, см. Здесь (откройте консоль) -> http://kod.djpw.cz/nhnb- это треки относительно viewport/page, а не относительно целевого элемента. в какой версии IE вы используете –

+0

Это может быть правдой для вашего примера, но изменения в видовом экране меня изменят, поскольку у меня есть меню offcanvas, которое перемещается с левой стороны. Спасибо за вашу помощь, но я ценю это, но решил это, по крайней мере, на данный момент ... – nblackburn