JavaScript / jQuery - offsetLeft и offsetTop - PullRequest
       12

JavaScript / jQuery - offsetLeft и offsetTop

4 голосов
/ 11 февраля 2009

При наведении курсора на промежуток я хотел бы получить значения offsetLeft и offsetTop, чтобы можно было что-то зависать рядом с ним. Когда я делаю это, я получаю 0 для обоих значений.

Что может быть лучше для этого? Я использую JQuery.

Предположим, я начинаю с (зацикливается серверными сценариями):

<span onmouseover="hoverNearMe(this.offsetLeft,this.offsetTop);">some username</span><br />

ЗАКЛЮЧИТЕЛЬНЫЕ МЫСЛИ:
Я даю ответный ответ на основе «рычага кода» / DRY. Более длинная функция, которую вы можете использовать снова и снова в вашей собственной библиотеке js. Однако второй короткий ответ также на 100% верен.

Ответы [ 3 ]

28 голосов
/ 11 февраля 2009

$(this).offset().left и $(this).offset().top

13 голосов
/ 11 февраля 2009

Я думаю, вы должны быть в состоянии сделать это:

HTML

<span class="get-close-to">some username</span><br />

JQuery

jQuery('.get-close-to').hover(function() {
    var offset = jQuery(this).css('offset');
    alert( 'Left: ' + offset.left + '\nTop: ' + offset.top );
});
0 голосов
/ 07 июля 2009

Зачем вам нужны скрипты на стороне сервера?

попробуйте это:

    var positionImg = function(e) {
        $(this).offset();
    var zoomCntnrPos = $(this).offset.top;
      if (zoomCntnrPos >= maxBottomVPos)
      {
           tPosX = e.pageX;
           tPosY = e.pageY +20;
          }
      else if (zoomCntnrPos <= maxTopVPos){
           tPosX = e.pageX;
           tPosY = e.pageY +40;
          }
      else
          {
           tPosX = e.pageX;
           tPosY = e.pageY -100;  
          }
        $zoomContainer.css({top: tPosY, left: tPosX});
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...