如何找到元素与其父元素的"相对"位置?或者:如何找到蓝先生?

Kee*_*ker 16 html javascript jquery

我基本上有2个div元素.第一个是滚动容器,第二个是放置在容器中的元素.我想找到相对于滚动容器的y位置.我将所有内容都包含在一个标题为" 如何找到蓝先生 "的示例代码中

<div style="height:100px; border:solid 1px black; overflow-y:scroll;">
    Please scroll down...
    <br/>
    <div style="height:400px;">
    </div>
    <br/>
    <div id="MrBlue" style="height:20px; background-color:blue; color:white">
        Mr. Blue
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

所以我想一个的JavaScript/jQuery的声明,提醒在垂直位置的的蓝先生.div 对于滚动容器.

PS.如果你想与先生"小提琴".蓝色,请查看http://jsfiddle.net/KeesCBakker/Qjr5q/.

Tom*_* Tu 25

如果你可以将css添加position: relative到包装/滚动容器中,那就简单了

document.getElementById('MrBlue').offsetTop
Run Code Online (Sandbox Code Playgroud)

和jsfiddle示例http://jsfiddle.net/eU3pN/2/

  • 写得少,做得更多 - 真实 - 但需要更多的时间和CPU功率 - 有时你负担不起 - 特别是如果你在老式PC /笔记本电脑或上网本上测试你的jquery重型网站你会发现jquery不是与原生JS相比,在速度方面远不够.它只需处理最佳情况和最差情况,使其在每种可能的情况下都变慢.虽然它是我最喜欢的快速原型制作工具,但我总是试图尽可能多地使用本机代码,如果我知道旧设置/浏览器的性能将从中受益. (11认同)
  • 哦,它不是JQuery,但它是;)$(#MrBlue).position.top() - 少写,多做;) (3认同)