Estimados...
Hace pocos días abrí un post que fue muy visitado pero creo que mi pregunta era muy compleja con la descripción. Trataré de hacerla más simple.
Este script se usa para hacer que el clic a un enlace que dirige a una div dentro de la misma página haga el scroll hasta una posición calculada específicamente.
...... funciona bien cuando está dentro de una página en la zona del Head pero no cuando está en una función en un archivo js externo.
Al cliquear el enlace con una "href="#DIVPARASCROLL" dentro de la misma página se ejecuta lo siguiente.
Hasta aquí todo va bien y esto hace el scroll hasta la posición en forma correcta.
PERO CUANDO USO EL MISMO SCRIPT EN UNA FUNCIÓN DENTRO DE UN ARCHIVO JS, YA NO FUNCIONA BIEN
Todo va bien hasta que termina el scrollTo pero luego viene lo que no entiendo y no quiero que ocurra
Ahora descubrí que el SCROLLTO se ejecuta bien, hace el scroll hasta la posición indicada y la DIVPARASCROLL queda bien posicionada...
... pero........
... al terminar el script, es como que continuase la acción del click dado en el enlace, y el scroll va al tope de página (como sucede normalmente al cliquear enlaces internos a una página) y lleva a la DIV (en un segundo movimiento final despues del scrollTo) al tope de página, fuera de la posición calculada que alcanzó con el scrollTo.
O sea... estando en el archivo js externo hace un scrollTo correcto, y luego aunque termina el script, hace otro Scroll como un scrollTop
¿Cómo se puede hacer para que este segundo movimiento no ocurra?
Socorro !!!!!!
Muchas gracias y disculpen las molestias!!!!!!!
GusSiglo21
Hace pocos días abrí un post que fue muy visitado pero creo que mi pregunta era muy compleja con la descripción. Trataré de hacerla más simple.
Este script se usa para hacer que el clic a un enlace que dirige a una div dentro de la misma página haga el scroll hasta una posición calculada específicamente.
...... funciona bien cuando está dentro de una página en la zona del Head pero no cuando está en una función en un archivo js externo.
Al cliquear el enlace con una "href="#DIVPARASCROLL" dentro de la misma página se ejecuta lo siguiente.
<script>
var nombre = "#"+ "DIVPARASCROLL;
var x = $(nombre).offset();
alert("Top: " + x.top + " Left: " + x.left);
var elemaltu = document.getElementById("DIV_ENCABEZADO");
var h = elemaltu.offsetHeight;
var b = x.top - h;
window.scrollTo(0, b);
</script>Hasta aquí todo va bien y esto hace el scroll hasta la posición en forma correcta.
PERO CUANDO USO EL MISMO SCRIPT EN UNA FUNCIÓN DENTRO DE UN ARCHIVO JS, YA NO FUNCIONA BIEN
function scrolloff(valor) {
var nombre = "#"+ "DIVPARASCROLL;
var x = $(nombre).offset();
alert("Top: " + x.top + " Left: " + x.left);
var elemaltu = document.getElementById("DIV_ENCABEZADO");
var h = elemaltu.offsetHeight;
var b = x.top - h;
window.scrollTo(0, b);
}Todo va bien hasta que termina el scrollTo pero luego viene lo que no entiendo y no quiero que ocurra
Ahora descubrí que el SCROLLTO se ejecuta bien, hace el scroll hasta la posición indicada y la DIVPARASCROLL queda bien posicionada...
... pero........
... al terminar el script, es como que continuase la acción del click dado en el enlace, y el scroll va al tope de página (como sucede normalmente al cliquear enlaces internos a una página) y lleva a la DIV (en un segundo movimiento final despues del scrollTo) al tope de página, fuera de la posición calculada que alcanzó con el scrollTo.
O sea... estando en el archivo js externo hace un scrollTo correcto, y luego aunque termina el script, hace otro Scroll como un scrollTop
¿Cómo se puede hacer para que este segundo movimiento no ocurra?
Socorro !!!!!!
Muchas gracias y disculpen las molestias!!!!!!!
GusSiglo21