post
Slide Horizontal com Contêiner do Elementor e JS Customizado
Publicado em: 02/07/2024 / Atualizado em: 02/07/2024
Este código personalizado abaixo, ajuda a criar um slide horizontal navegável com os blocos do Elementor, sem a necessidade de plugins adicionais ou CPT. Essa solução se encaixa para poucos casos de uso. Em geral, vai preferir usar um plugin para isso, ou até mesmo a propriedade de “slide” do JetEngine, usando o Listing Grid.
Mas, em todo caso, sempre tem um caso de uso, e as vezes não faz sentido usar mais plugins ou configurações avançadas para isso.
Código:
<!-- Estilo CSS Opcional --> <style> #scroll-blocos:active { cursor: grabbing; } #scroll-blocos::-webkit-scrollbar { display: none; } #scroll-blocos { -ms-overflow-style: none; scrollbar-width: none; } </style> <script> document.addEventListener('DOMContentLoaded', () => { const scrollableSection = document.getElementById('scroll-blocos'); // ID para o container const leftButton = document.querySelector('.left-button'); // ID para o botão esquerdo const rightButton = document.querySelector('.right-button'); // ID para o botão direito const itemWidth = document.querySelector('#scroll-blocos > div').offsetWidth + 24; // item width + margin // Controle Botão Esquerdo leftButton.addEventListener('click', () => { scrollableSection.scrollBy({ left: -itemWidth, behavior: 'smooth' }); }); // Controle Botão Direito rightButton.addEventListener('click', () => { scrollableSection.scrollBy({ left: itemWidth, behavior: 'smooth' }); }); // Controle Deslizante com o Mouse let isDown = false; let startX; let scrollLeft; scrollableSection.addEventListener('mousedown', (e) => { isDown = true; scrollableSection.classList.add('active'); startX = e.pageX - scrollableSection.offsetLeft; scrollLeft = scrollableSection.scrollLeft; }); scrollableSection.addEventListener('mouseleave', () => { isDown = false; scrollableSection.classList.remove('active'); }); scrollableSection.addEventListener('mouseup', () => { isDown = false; scrollableSection.classList.remove('active'); }); scrollableSection.addEventListener('mousemove', (e) => { if (!isDown) return; e.preventDefault(); const x = e.pageX - scrollableSection.offsetLeft; const walk = (x - startX) * 2; // Velocidade scrollableSection.scrollLeft = scrollLeft - walk; }); }); </script>
Implementação:
1 – Primeiro você precisa adicionar um Contêiner principal, e dentro dele, adicionar os outros itens. Pode ser qualquer widget ou outro Contêiner.
2 – Ainda no Contêiner principal, adicione o ID scroll-blocos
:
Recomendo também adicionar o z-index como 1, para que o Contêiner das setas não atrapalhe.
3 – Logo abaixo do nosso Contêiner principal, vamos criar um Contêiner para os botões:
4 – Na parte de “avançado” vamos ativar a “posição” como “absoluto“. Depois mover em “Desvio” até que os botões fiquem no centro do nosso slide. O valor do desvio vai de cada layout, você vai analisar como fica no seu. No meu, como tinha elementos no contêiner principal, precisei deixar como 480. Mas no seu, você vai analisar.
5 – No Contêiner dos botões, vamos deixar aproximadamente essas configurações. A largura você ajusta como achar melhor.
6 – Nos botões vai adicionar as class left-button
e right-button
, como mostra abaixo:
7 – Feito isso, agora adicione o código em um bloco de HTML no final da página:
Publicações recomendadas:
Inscreva-se em Nossa News:
Seja notificando sempre que tiver conteúdo novo disponível no meu canal do Youtube ou artigo no meu Blog.
Link Curto para Compartilhamento
Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.
bruno.art.br/pb/5524
ID de Referência: 5524
Sugira uma publicação
Envie uma mensagem e sugira um publicação sobre um assunto que tenha dificuldades de resolver.