отслеживание мыши в IE - PullRequest
       23

отслеживание мыши в IE

2 голосов
/ 19 марта 2010

Рассмотрим следующий фрагмент:

$(document).bind('mousemove', function(e)
                 {
                    $('#someDiv').css({left: e.pageX+'px', top: e.pageY+'px'});
                 });

Это должно заставить #someDiv следовать за мышью (всплывающей подсказкой), когда значение css для "position" установлено в абсолютное значение.

Работает как положено, за исключением случаев, когда вы увеличиваете или уменьшаете масштаб в IE7 (не пытайтесь использовать другую версию IE). Тогда e.pageX полностью отключается. Чем больше вы увеличиваете масштаб (используя колесо мыши + CTRL), тем больше получается позиционирование.

Я пытался сломать демонстрации пользовательского интерфейса jQuery (ползунки), и, кажется, даже ребята из jQuery этого не поняли. Есть ли гений, который знает, как исправить эту неприятную вещь?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 19 марта 2010

Попробуйте следующий HTML:

<div id="one" style="top:2px;left:10%;width:10px;height:10px;background:blue; position:absolute;"> </div>
<div id="two" style="top:2px;width:10px;height:10px;background:red;position:absolute;"> </div>

<div id="log" style="margin-top:25px;"> </div>

со следующим скриптом:

document.getElementById("two").style.left = document.getElementById("one").offsetLeft + "px";
var zoom = 0;

setInterval(function() {
  var newZoom = document.getElementById("two").offsetLeft / document.getElementById("one").offsetLeft;



if (newZoom == zoom) return;
  zoom = newZoom;



document.getElementById("log").innerHTML += zoom + "<br>";
}, 200);

И в нем представлен метод расчета шкалы уровня масштабирования в браузере.

Я думаю, что если вы введете этот параметр в свои расчеты, это поможет вам

извините, я отправил новый ответ, но в окне комментариев не отображалась кнопка фрагмента кода

0 голосов
/ 19 марта 2010

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

Я сказал это, фактически не переписывая код сам, но это не кажется трудным для вас.

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