Esta clase quizás te pueda ser de utilidad, únicamente tienes que instanciar la clase, y en los parámetros pasar el elemento en el cual efectuará la acción al realizar el scroll y el segundo parámetro un string con la acción o función que quieras ejecutar cuando hayas llegado el elemento target. Espero te sea de utilidad.
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript">
window.onscroll=function(){
var elem=document.getElementById('target');
var getPositions=new ActionWhenPositionElement(elem,"alert('boom!!')");
}
function getScrollOffsets(w) {
// Use the specified window or the current window if no argument
w = w || window;
// This works for all browsers except IE versions 8 and before
if (w.pageXOffset != null) return {x: w.pageXOffset, y:w.pageYOffset};
// For IE (or any browser) in Standards mode
var d = w.document;
if (document.compatMode == "CSS1Compat")
return {x:d.documentElement.scrollLeft, y:d.documentElement.scrollTop};
// For browsers in Quirks mode
return { x: d.body.scrollLeft, y: d.body.scrollTop };
}
function positionObject(obj){
var y=obj.offsetTop;
return y;
}
//activa una función al hacer scroll y llegar a la misma altura de el elemento idtarget.
var count=1;
function ActionWhenPositionElement(idTarget,functionString){
this.positionObjY=positionObject(idTarget);
this.positionScrollY=getScrollOffsets().y;
if(this.positionObjY < this.positionScrollY+idTarget.getBoundingClientRect().height && count==1){
count--;
eval(functionString)
}
}
<p id="target" style="height:450px;">target
</p>