2015-09-20 63 views
4

考虑下面的HTML:找出两个元素的起始点之间有多少个像素?

<div id="members" class="main">  
    <section class="top"> 
     <!-- Other Content --> 
    </section> 
    <section class="listing"> 
     <div class="holder container"> 
      <div class="row"> 
       <div class="members-main col-sm-12"> 
        <div class="members-head row"> 

        </div> 
       </div> 
      </div> 
     </div> 
    </section> 
</div> 

是否有JavaScriptjQuery的方式,我可以找出像素的开始#members元素开始.members-head元素之间的金额是多少?

+0

如果你想获得一个确切的*** ***你必须求索用户所使用的缩放级别的像素数。看看[这里](http://blog.sebastian-martens.de/2009/12/how-to-detect-the-browser-zoom-level-change-browser-zoo/)了解一些细节。 – Amit

+0

@Amit谢谢你! – Brett

回答

1

尝试

$('.members-head').offset().top - $('#members').offset().top 

Jquery offset

如果你有内部#members一个多.members-head元素(我怀疑),你可以尝试$('.members-head:first'),或循环通过他们与.each$(this).offset().top - $('#members').offset().top

+0

难道不是相反吗? $('。members-head')。offset()。top - $('#members')。offset()。top'? – Brett

+0

是的,可以肯定你可以做abs(foo)。我改变了我的答案。 –

+0

谢谢。虽然缩放的确会影响到结果,但对我来说并不重要,因为它不一定非常完美。 – Brett

1

试试这个 你会得到。

$('#members').offset().top - $('.members-head').offset().top 
2

offset().top给你最高的位置元素的重刑。

var distance = $('.members-head').offset().top - $('#members').offset().top; 
 

 
alert("Distance is : " + distance)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="members" class="main">  
 
    <section class="top"> 
 
     Other Content 
 
    </section> 
 
    <section class="listing"> 
 
     <div class="holder container"> 
 
      <div class="row"> 
 
       <div class="members-main col-sm-12"> 
 
        <div class="members-head row"> 
 
         fdgfdgfdgdfgdfs 
 
        </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </section> 
 
</div>

+0

这并没有真正回答这个问题。在IE浏览器(我怀疑在其他浏览器中),我得到一小部分(18.3999 ...),更糟糕的是,如果我放大,我会得到相同的结果。这不是像素,绝对不准确。 – Amit

+0

对于IE,请尝试[offsettop](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop) –

相关问题