JavaScript / jQuery - offsetLeft和offsetTop

时间:2009-02-10 22:30:18

标签: javascript jquery

当悬停在跨度上时,我想得到offsetLeft和offsetTop值,这样我就可以在它附近做一些悬停。当我这样做时,两个值都得到0。

有什么更好的方法可以解决这个问题?我正在使用jQuery。

假设我开始(通过服务器端脚本循环):

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

最终想法:
我根据“代码杠杆”/ DRY给出答案。 您可以在自己的js库中反复使用的较长功能。 然而,第二个简短答案也是100%正确。

3 个答案:

答案 0 :(得分:28)

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

答案 1 :(得分:13)

我认为你应该能够做到这一点:

<强> 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 );
});

答案 2 :(得分:-1)

为什么需要服务器端脚本?

试试这个:

    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});
    };