Foros del Web » Programando para Internet » Jquery »

Problema Focus y scroll

Estas en el tema de Problema Focus y scroll en el foro de Jquery en Foros del Web. Estimados tengo el siguiente código que realiza un focus al formulario (input name=nombre) y se desplaza también hacia donde está el formulario. Código: <script> // ...
  #1 (permalink)  
Antiguo 13/12/2016, 21:51
 
Fecha de Ingreso: agosto-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Problema Focus y scroll

Estimados tengo el siguiente código que realiza un focus al formulario (input name=nombre) y se desplaza también hacia donde está el formulario.

Código:
<script>
// Funcion que hace scroll automatico hasta la parte superior del formulario
// Como el header es fixed, resto la altura de ese header
function scrollToForm(){
    jQuery("a[href='#nav']").click();
    jQuery('html, body').animate({
          scrollTop: (jQuery("p:contains('AGENDA TU HORA')").offset().top - (jQuery(".cg-menu-below").height() + jQuery("#contactolink .wpb_wrapper h2").height() + 20))
      }, 2000);
    jQuery("input[name='nombre']").focus();
}
jQuery(document).ready(function () {
  //Cambio el link de los elementos de menu que contienen [email protected] y numero de celular
  jQuery(".cg-wp-menu-wrapper a:contains('[email protected]'), .cg-wp-menu-wrapper a:contains('+569'), .contenedortitulo a:contains('100%')").attr("href","javascript:scrollToForm()");

});
</script>
Lo estaba usando en mi sitio pero hice unos cambios y por lo tanto ya no funciona como me gustaría. Sí, funciona, pero necesito hacerle algunos cambios :( ¿Me ayudarían? Les cuento:

Para contextualizar: los links están en un header fixed, por lo tanto se ven en todo momento. Si estoy en lo más alto del sitio y en lo más bajo, se seguirán viendo los links a los que les aplicaré esta función. Con esto aclarado les dejo mis dudas:
  • Cambio 1: El formulario está en el primer pantallazo, por lo tanto si estoy en lo más arriba del sitio no necesito que se desplace, solo que haga el focus
  • Cambio 2: El segundo cambio sería mantener el desplazamiento si estoy abajo del formulario, es decir en algún lugar donde no se vea el input name (el campo donde haré el focus).
  • Cambio 3: Si estoy en otra página que no sea el home (por ejemplo servicios), necesito que al hacer clic me redirija al home y haga el focus. Aquí no habría desplazamiento ya que al llevarme al home se verá en el primer pantallazo el formulario.
  • Cambio 4: Necesito ordenar también el orden en que se ejecutan las acciones. Si estoy en lo más bajo del sitio y presiono el link, hace el focus antes del desplazamiento. Sobre este punto lo ideal sería que hiciera el focus después de terminar la animación.

MIL DISCULPAS POR TODO LO QUE ESTOY PIDIENDO ¿Se puede hacer algo al respecto? Sé que es harto, pero acudo a ustedes porque sé que conocen del tema y quizás me puedan ayudar.

*Hay una parte del código que al parecer resta altura al llegar al lugar. Esto era porque el menú fixed tapaba una parte del formulario al llegar ahí. Con esto ya no hay problema así que se podría eliminar.

¡Gracias!

Etiquetas: focus, scroll
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.