元素的任何偏移都返回'undefined'

时间:2016-07-08 15:46:09

标签: javascript

所以我有一张svg#cta-scroll图片,是div#main的孩子。每当我尝试获取offsetTop的{​​{1}}(或任何其他类型的偏移量)时,它总会返回svg(Chrome,OS X)。

undefined

(function hideCtaWelcomeOnScroll() { var ctaWelcomeElement = document.getElementById('cta-scroll'); var initialCtaWelcomeOffset = ctaWelcomeElement.offsetTop; })(); 此处始终返回initialCtaWelcomeOffset

有没有人知道可能会发生什么?

编辑:我认为它不会有多大帮助,但这里是undefined的CSS:

svg

在绝望的行为中,我尝试删除动画和定位,但它并没有改变一件事......

1 个答案:

答案 0 :(得分:3)

由于SVG元素不支持offsetTop属性,因此最好将SVG包装在div中并获取该元素的偏移量。

e.g。

(function hideCtaWelcomeOnScroll() {
  var ctaWelcomeElement = document.getElementById('svgWrapper');
  var initialCtaWelcomeOffset = ctaWelcomeElement.offsetTop;
})();

HTML:

<div id="svgWrapper">
  <svg></svg>
</div>