post

Código JavaScript (JS) p/ Controlar Slide do JetEngine c/ Widget Listing (Simulando Clique)

Publicado em: 12/08/2024 / Atualizado em: 12/08/2024

Categorias: BlogJavaScript (JS)JetEngineJSListing GridWordpress

Este código JavaScript sincroniza botões customizados com um slider implementado pelo Slick Slider do JetEngine usando o Widget “Listing”, garantindo que, ao clicar nos botões ou interagir com o slider (por meio de setas, dots ou deslizando), a classe active-button seja atribuída ao botão correspondente ao slide atualmente visível. Ele também oculta tooltips associados aos botões e simula cliques em elementos específicos do slider, mantendo a interface visualmente consistente com a navegação do usuário.

<script>
    document.addEventListener('DOMContentLoaded', function() {
        // Elementos dos botões à direita
        const buttons = document.querySelectorAll('.button-class'); // Substitua '.button-class' pela classe real dos botões
    
        // Elementos dos tooltips
        const tooltips = document.querySelectorAll('.tooltip'); // Substitua '.tooltip' pela classe real dos tooltips
    
        // Função para atualizar o botão ativo
        function updateActiveButton(button) {
            // Remover a classe ativa de todos os botões
            buttons.forEach(btn => btn.classList.remove('active-button'));
            // Adicionar a classe ativa ao botão clicado
            button.classList.add('active-button');
        }
    
        // Função para ocultar todos os tooltips
        function hideTooltips() {
            tooltips.forEach(tooltip => {
                tooltip.classList.add('hidden');
                setTimeout(() => {
                    tooltip.style.display = 'none';
                }, 500); // Tempo da transição de fade out dos tooltips
            });
        }
    
        // Função para simular clique em outro botão
        function simulateButtonClick(nthChild) {
            // Seleciona o elemento com a classe especificada e o nth-child dinâmico
            var selector = `.jet-slick-dots li:nth-child(${nthChild})`;
            var button = document.querySelector(selector);
    
            // Verifica se o elemento foi encontrado
            if (button) {
                // Simula um clique no botão
                button.click();
            } else {
                console.error(`Elemento com o seletor '${selector}' não encontrado.`);
            }
        }
    
        // Inicializa com o conteúdo do primeiro botão visível
        updateActiveButton(document.getElementById('button1')); // Inicializa o primeiro botão como ativo
    
        // Adiciona evento de clique a todos os botões
        buttons.forEach(button => {
            button.addEventListener('click', function() {
                const buttonId = this.id; // Assuma que cada botão tem um id único correspondente (button1, button2, etc.)
                const buttonNumber = buttonId.replace('button', ''); // Extrai o número do ID do botão (ex: '1' de 'button1')
                const contentId = `content${buttonNumber}`;
                updateActiveButton(this);
                hideTooltips();
                simulateButtonClick(buttonNumber); // Chama a função passando o número do botão
            });
        });
    
        // Evento para capturar mudança de slide
        jQuery('#list-slide-metodo .jet-listing-grid__slider').on('afterChange', function(event, slick, currentSlide) {
            const activeSlideIndex = currentSlide + 1; // Índices dos slides começam em 0, então somamos 1
            const activeButton = document.getElementById(`button${activeSlideIndex}`);
            updateActiveButton(activeButton);
            hideTooltips();
        });
    
    });
</script>

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.

Bruno Devs News


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/5601

ID de Referência: 5601

Sugira uma publicação

Envie uma mensagem e sugira um publicação sobre um assunto que tenha dificuldades de resolver.

Clique aqui e entre em contato


Comentários