Javascript - 如何检测元素的offsetTop变化?

时间:2017-11-22 14:21:14

标签: javascript html

如何检测元素的offsetTop更改? 和其他元素的属性..

以下是我尝试在测试MutationObserver上放置div的片段,但是当我将标题div放在更大的位置时(通过写入一些文本),观察者永远不会被触发它)。

// get the test element
var testElement = document.getElementById('test');
// build the observer
var observer = new MutationObserver(function(mutations) {
  console.log("Observer triggered! YES!!");
})
// place it, listen to attributes and datas changes
.observe(testElement, {
  attributes: true,
  characterData: true,
});


// --- test ---
console.log("The test div is at " + testElement.offsetTop + "px from the top.");
console.log("Writting in the header div (to make it bigger)..");

document.getElementById("header").innerText = "Header text changed";

console.log("The test div is at " + testElement.offsetTop + "px from the top after header text changed.");
<div id="header"></div>
<div id="test"></div>

1 个答案:

答案 0 :(得分:0)

除了使用令人​​讨厌的极点,或者只是点击元素来检查它的位置之外,没有简单的方法可以做到这一点。

有这个博客:Jquery Plug-in

它为IE和Firefox提供了一个很好的解决方案,但对Web Kit不公平。