Estoy tratando de hacer que un div se recargue cada segundo y que se desplace hacia abajo al principio. Bien sé que puse ambos en la misma función, porque el script de desplazamiento no funciona cuando están separados (debido a la recarga). Sin embargo, en este caso se desplaza hacia abajo cada segundo. ¿Hay alguna manera de que el div se desplace hacia abajo solo al principio y lo vuelva a cargar cada segundo? ¡Gracias!
<script> function load(){ $('#screen').load('includes/update.php'); $("#screen").scrollTop($("#screen")[0].scrollHeight); } setInterval(function(){ load(); }, 1000); </script>Podría tener una variable externa que diga si se ha desplazado o no:
<script> var scrolled = false; function load(){ $('#screen').load('includes/update.php'); if(!scrolled){ $("#screen").scrollTop($("#screen")[0].scrollHeight); scrolled = true; } } setInterval(function(){ load(); }, 1000); </script>De esta forma, se llamará a load cada segundo, pero dado que scrolled está en el ámbito externo, será la misma variable para cada llamada.
Tienes que usar la callback function de llamada completa para .load() así:
<script> function load(){ $('#screen').load('includes/update.php', function(){ $("#screen").scrollTop($("#screen")[0].scrollHeight); }); } setInterval(function(){ load(); }, 1000); </script>Y significa que cuando el contenido se cargue por completo, llame a las funciones de devolución de llamada y desplácese hasta la parte superior.
Para obtener más referencia, puede usar la documentación de jQuery .load()