【发布时间】:2015-07-22 00:08:55
【问题描述】:
我尝试使用 JQuery 获取元素的偏移位置
Ember.$('section:nth-child(2)').offset().top
但是这段代码返回了错误的值。问题来自 Ember,它在我的元素周围添加了一些 Div 包装器。
我的 DOM 结构如下所示:
Html > Body >
Div[class='ember-view'] > Div[class='ember-view'] >
Div[class='Container'] > Div[class='row']
Section
Section
...
但是这个 Ember Div 不计入 parentNode。 有什么解决办法吗?
编辑 - 这是适用于部分的 CSS 代码:
section {
position: relative;
height: 100vh;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
display: block;
}
*, *::before, *::after {
box-sizing: inherit;
}
还有JS代码:
__init : function() {
Ember.$('#expand-btn').click(function(event) {
event.preventDefault();
Ember.$('.nav-link').removeClass('active');
Ember.$('.nav-link:nth-child(2)').addClass('active');
var elem = Ember.$('.container>#main>section:nth-child(2)')[0];
//Return 509, not 480
console.log(elem.getBoundingClientRect().top - elem.scrollTop);
Ember.$('html, body').animate({scrollTop : Ember.$('section:nth-child(2)').offset().top}, 750);
});
}.on('didInsertElement')
didInsertElement 确保代码在 DOM 加载后执行。
【问题讨论】:
标签: javascript jquery ember.js