Q:

Obtener posición de un div con scroll

Tengo, por ejemplo, un <div> en cierto punto de la página. Lo que quiero es que cuando el scroll esté en la misma posición de ese div me ejecute una función. Por ejemplo:
if(Scroll == div){div.innerHTML="altura es ???'" ;}

Lo intenté hacer con scrollTop pero solo me ejecuta la función cuando el scroll está en el tope y, bueno, yo quiero que me la ejecute cuando ambos se topen por ahí.
Aquí esta mi código:

//asi es como lo se hacer pero no se si este correcto con srollTop
onscroll=function(){ 
    var yScroll=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop); 
    var div = document.getElementById('pp');
if(yScroll == div.scrollTop){div.innerHTML="altura es: "+yScroll;}
} 
 div{
    background:grey;
    font-size:30px;
    padding:5px;
    font-weight:bold;
    width:200px;
    border-radius:5px;

}
<!DOCTYPE html > 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Documento sin título</title> 
</head> 

<body>
<br /> 
<br /> 

<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br />

<!--cando el scroll lleque a este div quiero ejecutar una funcion-->
<div id="pp">0</div>  
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
<br /> 
  
</body> 
</html>  

A:

La propiedad Element.scrollTop te indica la posición del scroll de un elemento relativo a su interior, no al navegador, por lo que lo mejor es calcular la altura del elemento directamente por su posición absoluta.
Para calcular la posición absoluta (relativa a la ventana que estamos viendo) de cualquier elemento del DOM podemos hacer uso de Element.getBoundingClientRect().top, devolviéndonos un DOMRect que nos proporciona todos los datos necesarios:

Un ejemplo de uso podría ser:

// Generamos la función que será llamada en cada evento de scroll
window.onscroll = () => {
  /* Obtenemos la posición absoluta del elemento en cuestión */
  var div = document.getElementById('pp');
  var yPos = div.getBoundingClientRect().top;
  /* Si está cerca del borde superior (pondremos un margen de 20px) mostramos el texto */
  if (Math.abs(yPos) < 20) {
    div.innerHTML = "Altura es: " + yPos;
  }
}
div {
    background: grey;
    font-size: 30px;
    padding: px;
    font-weight: bold;
    width: 200px;
    border-radius: 5px;
}
p {
  height: 100px;
  border: 1px solid red;
}
p:before {
  content: "Hacer scroll";
}
<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>

<!-- cuando el scroll llegue a este div quiero ejecutar una función -->
<div id="pp">Aún nada...</div>

<p>.</p><p>.</p><p>.</p><p>.</p><p>.</p><p>.</p><p>.</p><p>.</p>

