Scroll suave drupal 8

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
ReViJa's picture

Hola de nuevo, estoy volviendome loco con el tema de desplazamiento suave desde un elemento del menú hacia un bloque de newsletter que tengo en la parte inferior. Al poner en el menu #newsletter me desplaza de un tirón (rapidisimo) hacia el id=‘newsletter’ y hace un efecto muy feo.

He probado muchos módulos y ninguno lo ha resuelto.

¿Sabéis como lo puedo solucionar?

Tengo drupal 8 en su última versión.

Muchas gracias.

Comments

Hazlo con jQuery

AlvaroDev's picture

La manera en que puedes hacer el desplazamiento mas fluido es con jQuery

asi

$(".botonMenu").click(function(){
  $('html, body').animate({
        scrollTop: $("#ancla").offset().top
  }, 1000);
});

De este modo el desplazamiento es suave y no importa que versión de drupal o cualquier CMS tengas

Hola Alvaro ¿donde deberia

ReViJa's picture

Hola Alvaro ¿donde deberia añadir ese código
Y .botonMenu es el id del menú? Y #ancla ?

Es que no quiero equivocarme

Gracias por tu ayuda

En el archivo template de tu tema

AlvaroDev's picture

Primero tienes que identificar si tu sitio esta construido con un tema custom, de ser asi tienes que identificar el archivo html.twig principal, que es en donde se encuentra la estructura generar del html, asi que debes agregar un archivo js adicional asi

esto debe estar dentro de la etiqueda del html.twig del template

<script src="/themes/custom/nombre del template/js/jsCustom.js"></script>

en donde "jsCustom.js" es el archivo javascript en donde pondras el codigo del boton...

.boton es la clase del boton que esta en el menú

ancla es el id de la sección a la que hace referencia el boton del menú, en tu caso "#newsletter"

Hola Alvaro, no hay manera...

ReViJa's picture

Hola Alvaro, no hay manera... He seguido tus pasos y no lo consigo hacer funcionar.
No se si tendrá algo que ver con el tema que estoy usando (Bootstrap) y un subtema de este.
Veo que la librería js se carga pero no hace nada...

Alguna solución?

Gracias por vuestro tiempo.

¿Esta cargando dentro del evento document ready?

AlvaroDev's picture

Tienes que asegurarte de que el script que te di lo cargue dentro del evento ready

asi:

$(document).ready(function(){
    $(".botonMenu").click(function(){
        $('html, body').animate({
            scrollTop: $("#ancla").offset().top
      }, 1000);
  });
});

También puedes usar este

calbasi's picture

También puedes usar este módulo: https://www.drupal.org/project/smooth_mouse_scrolling (tal vez haya algun otro módulo)

Web developer: www.calbasi.net

Disculpad la demora, he

ReViJa's picture

Disculpad la demora, he añadido el cambio que comenta AlvaroDev y seguimos igual.

calbasi el módulo que comentas lo que hace es que el scroll del ratón sea mas "lento" pero no tiene efecto con las anclas.

Estoy desesperado... Que burro soy..

Muchas gracias

Dame el link del sitio

AlvaroDev's picture

Dejame ver el sitio si lo tienes online para saber que pasa

Qué lástima... Lo tengo

ReViJa's picture

Qué lástima... Lo tengo probando en local hasta tener claros los cambios. No hay web online.

Smooth

joancatala's picture

Buenas ReViJa,
creo que lo que buscas se llama efecto smooth, donde haces clicks en las opciones de menú y te baja a los id de los DIVS con una velocidad pausada. Y como te dice @calbasi, hay un módulo que parece que hace eso, aunque yo personalmente no lo he probado.

Yo hice algo similiar en http://projectewebmunicipal.dipcas.es

Si quieres, mándame un privado a joan@riseup.net y te paso el código javascript y HTML que hace esto, que es super sencillo. Y ya luego tú lo adaptas a tu plantilla tpl.twig de tu Drupal.

un saludo,
joan

Probaré con más pausa e

ReViJa's picture

Probaré con más pausa e módulo que comentáis y si sigo fracasando te mando un email ;-)

Muchas gracias !!

Spain

Group organizers

Group categories

Región geográfica

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week