Saltar al contenido

Cómo obtener scrollTop de un iframe

Solución:

Encontré esta pregunta mientras intentaba CONFIGURAR scrollTop dentro de un iframe … no es exactamente tu pregunta (querías OBTENER) pero aquí hay una solución dentro de los iframes para las personas que también terminan aquí tratando de CONFIGURAR.

Si desea desplazarse hasta la parte superior de la página Esto no funcionará dentro de un iframe:

$("html,body").scrollTop(0);

Sin embargo, esto funcionará:

document.getElementById("wrapper").scrollIntoView();

O el equivalente con jQuery:

 $("#wrapper")[0].scrollIntoView();

Para este marcado (contenido dentro de un iframe):

<html>
  <body>
    <div id="wrapper">
      <!-- lots of content -->
    </div>
  </body>
</html>

$('#myIframe').contents().scrollTop()

Puedes configurar scrollTop usando esta configuración:

$("html,body").scrollTop(25);

Entonces podrías intentar conseguirlo así:

$("html,body").scrollTop();

Debido a que diferentes navegadores configuran scrollTop en diferentes elementos (cuerpo o html).

Desde el complemento scrollTo:

Pero eso probablemente aún fallará en ciertos navegadores. Aquí está la sección relevante del código fuente del plugin scrollTo de Ariel Flesher para jQuery:

// Hack, hack, hack :)
// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
$.fn._scrollable = function(){
  return this.map(function(){
    var elem = this,
      isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;

    if( ! isWin ) {
      return elem;
    }


    var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;

     return $.browser.safari || doc.compatMode == 'BackCompat' ?
       doc.body : 
       doc.documentElement;
  });
};

A continuación, puede ejecutar:

$(window)._scrollable().scrollTop();

Para determinar cuánto se ha desplazado hacia abajo el iframe.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *