Да, действительно похоже на баг. Я тебе больше скажу, посмотри на мой вариант:
<button id="btn">smooth</button><br/>
<div></div>
<div id="d"></div>
<style>
div {
display:inline-block;
width: 100px; height: 100px;
background-color: red;
opacity: 1;
transition-property: all;
transition-duration: 1000ms;
}
#d {
background-color: blue;
opacity: 0;
}
</style>
<script>
var div = document.getElementsByTagName("div")[0];
var d = document.getElementById("d");
d.parentNode.removeChild(d);
document.getElementById("btn").onclick = function () {
div.style.opacity = 0;
setTimeout(function(){
document.body.appendChild(d);
*!*
console.log(d.offsetTop);
*/!*
d.style.opacity = 1;
}, 1000);
};
</script>
Видимо, это как-то связано с оптимизацией обращений к DOM. Есть там какая-то хитрота, не помню точно, отпишу, если найду.