Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/01/2014, 18:58
Avatar de danny_
danny_
 
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: Saber cuando una parte de la web esta en pantalla

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
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. <script type="text/javascript">
  6.  
  7. window.onscroll=function(){
  8.     var elem=document.getElementById('target');
  9.     var getPositions=new ActionWhenPositionElement(elem,"alert('boom!!')");
  10.    
  11. }
  12.  
  13.  
  14.  
  15.  
  16.  
  17. function getScrollOffsets(w) {
  18.     // Use the specified window or the current window if no argument
  19.     w = w || window;
  20.  
  21.     // This works for all browsers except IE versions 8 and before
  22.     if (w.pageXOffset != null) return {x: w.pageXOffset, y:w.pageYOffset};
  23.    
  24.     // For IE (or any browser) in Standards mode
  25.     var d = w.document;
  26.     if (document.compatMode == "CSS1Compat")
  27.         return {x:d.documentElement.scrollLeft, y:d.documentElement.scrollTop};
  28.  
  29.     // For browsers in Quirks mode
  30.     return { x: d.body.scrollLeft, y: d.body.scrollTop };
  31. }
  32.  
  33.  
  34. function positionObject(obj){
  35.     var y=obj.offsetTop;
  36.     return y;
  37. }
  38. //activa una función al hacer scroll y llegar a la misma altura de el elemento idtarget.
  39. var count=1;
  40. function ActionWhenPositionElement(idTarget,functionString){
  41.     this.positionObjY=positionObject(idTarget);
  42.     this.positionScrollY=getScrollOffsets().y;
  43.    
  44.     if(this.positionObjY < this.positionScrollY+idTarget.getBoundingClientRect().height && count==1){
  45.         count--;
  46.         eval(functionString)
  47.     }
  48. }
  49.  
  50. </head>
  51.  
  52. <br />
  53. <br />
  54. <br />
  55. <br />
  56. <br />
  57. <br />
  58. <br />
  59. <br />
  60. <br />
  61. <br />
  62. <br />
  63. <br />
  64. <br />
  65. <br />
  66. <br />
  67. <br />
  68. <br />
  69. <br />
  70. <br />
  71. <br />
  72. <br />
  73.  
  74. <br />
  75. <br />
  76. <br />
  77. <br />
  78. <br />
  79. <br />
  80. <br />
  81. <br />
  82. <br />
  83. <br />
  84. <br />
  85. <br />
  86. <br />
  87. <br />
  88. <br />
  89. <br />
  90. <br />
  91. <br />
  92. <br />
  93. <br />
  94. <br />
  95. <br />
  96. <br />
  97. <br />
  98. <br />
  99. <br />
  100. <br />
  101. <br />
  102. <br />
  103. <br />
  104. <br />
  105. <br />
  106. <br />
  107. <br />
  108. <br />
  109. <br />
  110. <br />
  111. <br />
  112. <br />
  113. <br />
  114. <br />
  115. <br />
  116. <br />
  117. <br />
  118. <br />
  119.  
  120. <p id="target" style="height:450px;">target</p>
  121. <br />
  122.  
  123.  
  124. </body>
  125. </html>
__________________
http://www.danielcarvajal.es