2010-11-23 4 views
1

Я учусь яваскрипт образца с этой страницы,event.clientX вопрос позиции в JavaScript

http://nofunc.org/AJAX_Star_Rating

Я смущен о следующих фрагментах кода в функции XY (е, V), особенно два заявления event.clientX+document.documentElement.scrollLeft и event.clientY+document.documentElement.scrollTop, может ли кто-нибудь сообщить мне, что такое document.documentElement.scrollLeft и document.documentElement.scrollTop? И почему мы добавляем его в event.clientX и event.clientY, пожалуйста (то есть какие значащие значения мы могли бы получить при добавлении их к event.clientX и event.clientY)?

BTW: Я использую интернет-проводник.

спасибо заранее, Джорджа

+1

Какая у вас проблема? Вопрос в том, «что это такое?» для этого вы должны искать либо через Google, либо в MDC: https://developer.mozilla.org/en/DOM – 2010-11-23 16:41:03

+0

Хороший документ, спасибо! Но иногда, по-прежнему нужен гуру, как вы, ребята, советы. – George2 2010-11-24 07:03:25

ответ

5

clientX - Получает или задает й-координату положения указателя мыши относительно клиентской области окна, за исключением оконных украшений и полос прокрутки. http://msdn.microsoft.com/en-us/library/ms533567(VS.85).aspx

scrollLeft - Устанавливает или извлекает расстояние между левым краем объекта и самой левой частью содержимого, которое в данный момент отображается в окне. http://msdn.microsoft.com/en-us/library/ms534617(VS.85).aspx

В непрофессионала, он получает позицию мыши на экране (clientX и clientY), затем добавив, что значение текущей позиции прокрутки (scrollLeft и scrollTop) страницы, чтобы получить общую позицию пикселя для точки.

I.E. Если вы просматриваете страницу с прокруткой на 200 пикселей вниз и щелчок мышью происходит на 200 пикселей вниз по области просмотра клиента, это будет на 400 пикселей вниз по документу.

EDIT:

«область клиента окна» относится к области отображения Internet Explorer, который вы видите/манипулировать на этой странице. Он начинается с 0px 0px в верхнем левом углу и является таким же широким/высоким, как ваше окно браузера открыто (минус полосы прокрутки, рамка, строка заголовка и т. Д.).

В этом примере он пытается получить абсолютное положение события на странице, указав, где находится «видимая область» браузера, которую вы сделали клик, и добавив, что вниз вниз/вправо «видимый» область "прокручивается на странице.

1

я получил ту же проблему, используя этот скрипт на моем сайте http://www.alterboutique.com

Я нашел решение здесь: www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_23310105.html

В нижней части страницы есть сообщение от Kravimir, он дает решение, заменяющее код функции XY, его кодом:

Функция XY (e, v) { e = e || window. мероприятие; var d = document, dE = d.documentElement, o; if (typeof (e.pageX) == 'number') o = {'X': e.pageX, 'Y': e.pageY}; else o = {'X': e.clientX + d.body.scrollLeft + (dE? DE.scrollLeft: 0), 'Y': e.clientY + d.body.scrollTop + (dE? DE.scrollTop: 0)}; возвращение (v?о [V]: о); }

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

Успехов

Жан-Марк

Смежные вопросы