Botão Inteligente com Delay

Classes utilizadas

				
					h6{
color:white;
}
				
			

Código JS

		
		    
<style>
    .oculto {
        display: none;
    }
</style> 

<script>
    
document.addEventListener("DOMContentLoaded", () => {
        const TEMPO_LIMITE = 660;  // 11 minutos em segundos
        const SELECIONAR_ELEMENTO = '.oculto';  
        let tempoJaDecorrido = JSON.parse(localStorage.getItem('tempoDecorrido')) || 0;
        let botaoJaExibido = JSON.parse(localStorage.getItem('botaoExibido')) || false;

        // Função para exibir os elementos com a classe .oculto
        function exibirElementos() {
            const elementos = document.querySelectorAll(SELECIONAR_ELEMENTO);
            elementos.forEach(elemento => {
                elemento.style.display = 'block';
            });
            localStorage.setItem('botaoExibido', true);  // Salva que os elementos já foram exibidos
            console.log('Elementos exibidos e informação salva no localStorage.');
        }

        // Função para salvar o tempo decorrido no localStorage
        function salvarTempoDecorrido(tempo) {
            localStorage.setItem('tempoDecorrido', tempo);
        }

        // Verifica se os elementos já foram exibidos antes
        if (botaoJaExibido) {
            exibirElementos();  // Exibe imediatamente se já foi exibido uma vez
        } else {
            // Calcula o tempo restante
            let tempoRestante = TEMPO_LIMITE - tempoJaDecorrido;

            // Se o tempo restante já é menor ou igual a zero, exibe os elementos imediatamente
            if (tempoRestante <= 0) {
                exibirElementos();
            } else {
                // Caso contrário, inicia o contador a partir do tempo restante
                let contador = setInterval(() => {
                    tempoJaDecorrido++;
                    salvarTempoDecorrido(tempoJaDecorrido);  // Salva o tempo atualizado no localStorage
                    console.log(`Tempo na página: ${tempoJaDecorrido} segundos`);

                    if (tempoJaDecorrido >= TEMPO_LIMITE) {
                        exibirElementos();  // Exibe os elementos após atingir o limite
                        clearInterval(contador);  // Para o contador
                    }
                }, 1000);  // Incrementa o tempo a cada segundo
            }
        }

        // Limpa o tempo quando a página for recarregada, se os elementos já foram exibidos
        window.addEventListener('beforeunload', () => {
            if (JSON.parse(localStorage.getItem('botaoExibido'))) {
                localStorage.removeItem('tempoDecorrido');  // Reseta o tempo após os elementos aparecerem
            }
        });
    });


</script>  
			  
			    
		
	

Torne-se um WebDesigner de Sucesso!

Pré-cadastro comunidade webhub

Obrigado!

Recebemos suas informações com sucesso! Vamos cadastrá-lo em nosso sistema de WebDesigners da WebHub e, em breve, notificaremos você sobre novos projetos.

Obrigado!

Recebemos suas informações com sucesso e estamos prontos para dar o próximo passo no seu projeto. Em breve, você receberá uma mensagem no WhatsApp ou Email para que possamos discutir os detalhes do desenvolvimento do seu site.

Recupere seu investimento

Se você for um completo iniciante, levará em média 1 a 2 meses para assistir todas as aulas básicas. Após isso, já estará apto a conseguir seus primeiros clientes. Acredite ou não, com apenas um site, que pode ser criado em 2 ou 3 dias, você já terá a chance de recuperar seu investimento com a comunidade!