//Slider de scroll horizontal //Basta passar o id do container que tenha conteudo horizontal para aplicar scroll function Slider(seletorContainerLista, seletorAdicionarPontos){ const classeAtivo = ' destaque-ponto-ativo'; const classePontosContainer = '.destaques-pontos' const classePonto = '.destaque-ponto'; var slideAtual = 0; var offsetLeft = 0; var sliderRelogio = new SliderRelogio(funcaoTemporizador,4000); //Funcao que roda sempre function funcaoTemporizador(){ definirSlideAtual(slideAtual); //Mudar slide automaticamente slideAtual = (slideAtual+1) % 4; } //Click no ponto do slide que deseja visualizar function definirSlideAtualPontoClick(indice){ sliderRelogio.reiniciar(); slideAtual = indice; definirSlideAtual(indice); } //Muda a style do ponto do slide ativo function definirPontoAtivo(indiceAtivo){ jQuery(classePonto).each(function (index){ if(indiceAtivo === index){ this.className += classeAtivo; } else{ this.className = this.className.replace(classeAtivo, ''); } }); }; //Muda o slide ativo function definirSlideAtual(indice){ var slideContainer = jQuery(seletorContainerLista); var slides = slideContainer.children(); var primeiro = slides.eq(indice === 0 ? 0 : indice -1); var segundo = slides.eq(indice); if(segundo.offset() && primeiro.offset()){ offsetLeft = segundo.offset().left - primeiro.offset().left; } definirPontoAtivo(indice); slideContainer.animate({ scrollLeft: offsetLeft*indice },1500); } function inserirPontos(){ var quantSliders = jQuery(seletorContainerLista).children().length; jQuery(seletorAdicionarPontos).append('
'); for (var i = 0; i < quantSliders; i++) { jQuery(classePontosContainer).append(''); } jQuery(seletorAdicionarPontos).append('
'); jQuery(classePonto).each(function (index){ jQuery(this).on("click", function() { definirSlideAtualPontoClick(index); }); }); } this.inicializar = function(){ inserirPontos(); definirSlideAtual(0); sliderRelogio.iniciar(); }; } //Encapsulamento do setInterval do javascript para facilitar o uso. function SliderRelogio(fn, t) { var timerObj = setInterval(fn, t); this.parar = function() { if (timerObj) { clearInterval(timerObj); timerObj = null; } return this; } this.iniciar = function() { if (!timerObj) { this.parar(); timerObj = setInterval(fn, t); } return this; } this.reiniciar = function(newT = t) { t = newT; return this.parar().iniciar(); } } jQuery(function() { //Scroll automatico dos destaques em modo mobile. jQuery(window).on( "load", function(){ var slider = new Slider('#destaques-lista', '.destaques'); slider.inicializar(); }); });