Javascript div位置静态上返回0的位置

Javascript div位置静态上返回0的位置,javascript,jquery,html,position,offset,Javascript,Jquery,Html,Position,Offset,我正在尝试使用jQuery的position方法获取div的位置。div的position属性具有默认属性。出于某种原因,它返回对象{top:0,left:0} 特定div的HTML如下所示: <div class="col-xs-3" id="increased-width"> <div id="standards"> <label><strong>My Energy Standards&l

我正在尝试使用jQuery的position方法获取div的位置。div的position属性具有默认属性。出于某种原因,它返回对象{top:0,left:0}

特定div的HTML如下所示:

<div class="col-xs-3" id="increased-width">
            <div id="standards">
                <label><strong>My Energy Standards</strong></label>
                <a class="btn" data-toggle="modal" data-target="#energyStandardModal"><span class="glyphicon glyphicon-info-sign"></span></a>
                <br />
            </div>
            <div id="years">
                <h5><strong>My Study Periods (in years)</strong></h5>
                <div id="col-1" class="altStudyPeriod"></div>
                <div id="col-2" class="altStudyPeriod"></div>
                <div id="col-3" class="altStudyPeriod"></div>
                <div id="col-4" class="altStudyPeriod"></div>
            </div>
        </div>
我还尝试使用offset方法,但它返回相同的值。但是,此特定内容不位于网页0,0的原始位置,重复: 基本上,position返回正确的css值,但您似乎希望得到与窗口的偏移量

编辑:位置属性表示距离最近的父容器(具有相对位置)的偏移。如果offset.top返回0,请尝试将其与窗口的偏移量进行比较,如前面引用的问题中所述:

var eTop = $('element').offset().top; //get the offset top of the element
console.log(eTop - $(window).scrollTop()); //position of the ele w.r.t window
这里有一个可能有助于解释事情的例子

我使用了您的代码,但添加了一些CSS来澄清问题

添加了边框以便可以看到您的div,并在col-xs-3 div上方添加了一个间隔div以向下推动所有内容

col-xs-3父/持有者div需要有css position:relative

请注意,在standards div上使用.position可以给出相对于其容器div的位置,其位置为:相对于容器div顶部的-0

在standards div上使用.offset可以给出它相对于窗口的位置-距离窗口顶部59

JS


编辑:如果愿意,您可以在标准div的上方添加一个.spacer div10,然后查看顶部测量值的变化。

是的,我查看了这个问题。我似乎无法获得该div相对于窗口的位置。我想我们需要查看您的css。div标准有一个父div.col-xs-3,我们需要知道您是想要基于父div还是页面/窗口上的位置。从jQuery获取匹配元素集中第一个元素相对于偏移父元素的当前坐标。我需要获取相对于窗口的位置,因为当用户与该div交互时,模式将覆盖该div。我已尝试偏移,但offset.top返回0。父分区col-xs-3的位置为:relative
var eTop = $('element').offset().top; //get the offset top of the element
console.log(eTop - $(window).scrollTop()); //position of the ele w.r.t window
$('.putmehere').html( "#standards position.top using .position(): " + $("#standards").position().top );

$('.putmehere2').html( "#standards position.top using .offset(): " + $("#standards").offset().top );