Skip to content

Delgado-tech/slider-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

O repositório em que você se encontra tem como o objetivo fornecer um código pronto e elaborado pelo autor, bem como ensinar a utilização do mesmo, o código pode ser alterado posteriormente para deixar o funcionamento ao gosto do usuário.

Para o uso do código de maneira livre é necessário o utilizador informar os créditos do autor (Leonardo Delgado), caso tenha sido feita qualquer modificação no código informar junto aos créditos (ex.: Slider.js by: Leonardo Delgado. The original code has modifications.)

Prévia

Link: https://delgado-tech.github.io/slider-js/
Previsualização:




﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏

Sumário

1. Funcionamento
2. Configuração do slider
2.1 Data-tags do slider
3. Configuração dos slider refs (Opcional)
4. Configuração do indicator ref (Opcional)
Rodapé

﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏




1. Funcionamento

Um slider é um elemento de interface com o usuário comumente usado em aplicativos e sites para permitir que os usuários selecionem um valor em um intervalo específico. Ele normalmente consiste em uma barra horizontal com um indicador que pode ser arrastado para a esquerda ou direita.

O funcionamento é simples, basta copiar a estrutura html informada nesse artigo, e utilizar data-tags para customizar seu slider e alterar classes especificas do css para uma edição visual.



2. Configuração do slider

Faça o download da pasta 0-slider-template presente nesse repositório, dentro dessa pasta já terá os arquivo pre-moldados com algumas informações, se deseja realizar a inserção do zero, siga os passos a seguir:


Primeiro passo, dentro da pasta informada acima, copie os arquivos slider.js e slider.css e cole em seu projeto.

Segundo passo, referencie esses arquivos em seu arquivo html que irá utiliza-los.

<html>
<head>
    <!-- Imports -->
    <link rel="stylesheet" href="./slider.css">
    <script src="./slider.js"></script>
    <!------------->
</head>
<body>
</body>
</html>

Terceiro passo, crie uma seção com a classe slider-container (caso a sua página venha a possuir mais de um slider crie um id para identifica-lo), nessa seção será configurado a maior parte do funcionamento do slider (para configurar o slider clique aqui para ver as data-tags), dentro dela crie uma div com a classe slider e outras duas divs com a classe slider-btn (essas duas divs servirão como botões para navegar dentro no slider) e coloque em uma a classe slider-btn-left e em outra a classe slider-btn-right para posicionar os botões na esquerda e direira respectivamente.

<section id="slider-exemplo" class="slider-container">
    <div class="slider">
    </div>
    <!-- Buttons -->
    <div class="slider-btn slider-btn-left"><button>&lt;</button></div> <!-- &lt; é o código do simbolo menor que ("<") -->
    <div class="slider-btn slider-btn-right"><button>&gt;</button></div> <!-- &lt; é o código do simbolo maior que (">") -->
</section>

Quarto passo, crie os cards que irão passar em seu slider (não há limites no número de cards), para isso, dentro da div slider, crie uma div com a classe card-wrapper e dentro dessa div crie uma div com a classe card-image e outra div com a classe card-content, dentro de card-content crie dois elementos, um com a classe card-title e outro com a classe card-description. Agora para adicionar mais cards basta copiar e colar a div card-wrappers quantas vezes desejar.

<!--<div class="slider">-->
    <div class="card-wrapper">
        <div class="card-image"></div>
        <div class="card-content">
            <h3 class="card-title">titulo</h3>
            <p class="card-description">Descrição</p>
        </div>
    </div>
    <!-- [...] -->

Você pode esconder informações do cartão colocando ao lado da classe card-wrapper as classes hidden-image" para imagens ou hidden-content para o conteúdo.
    <div class="card-wrapper hidden-image">
        <!-- [...] -->
    </div>
    
    <div class="card-wrapper hidden-content">
        <!-- [...] -->
    </div>

Você pode também mudar a orientação do itens, ao invés de ficar a imagem acima ou abaixo do texto, ela pode ficar ao lado do texto, para isso basta colocar ao lado da classe card-wrapper a classe card-wrapper-grid-column.
    <div class="card-wrapper card-wrapper-grid-column">
        <!-- [...] -->
    </div>

Quinto passo, depois de concluirmos a nossa estrutura HTML, precisamos referencia-la em um arquivo JS que conectará o seu arquivo HTML com o arquivo slider.js, para isso vamos criar um outro arquivo chamado index.js e nele colocar o código a seguir.

// cria uma constante que receberá todos os sliders dentro do documento
const sliderContainers = document.querySelectorAll(".slider-container");

//para cada elemento HTML com a classe "slider-container" instancia a classe slider que usa como parâmetro esse elemento.
sliderContainers.forEach(sliderContainer => {
    new slider(sliderContainer);
});

Por fim, no final do documento HTML chame esse arquivo.

<!-- [...] -->
    <script src="./scripts/main.js"></script>
</body>
</html>


2.1 Data-tags do slider

As data-tags permitem configurar o funcionamento do slider em questão, veja abaixo cada uma delas e o que fazem:

Data-tag Exemplo Descrição
data-slider-image-src
data-slider-image-src="./assets/slider-images/photo-{id}.svg" Define o caminho onde serão encontradas as imagens de cada card (obs: as imagens devem estar no mesmo diretório, possuindo o mesmo nome seguido do número do card (onde conterá esse número escreva "{id}" na data-tag como no exemplo ao lado))
data-slider-width
data-slider-width="80%" Define a largura do container do slider
data-slider-height
data-slider-height="auto" Define a altura do container do slider
data-slider-size
data-slider-size="80% auto" Define a largura e a altura do container do slider simultaneamente
data-slider-card-width
data-slider-card-width="400px" Define a largura dos cards (obs: a altura é com base na altura do container do slider)
data-slider-scroll-start
data-slider-scroll-start="10 10" Define um scroll inicial para o slider, o primeiro valor irá afetar todo o scroll, já o segundo só irá afetar o scroll ao a página ser carregada
data-slider-endless
data-slider-endless="true" Ativa ou desativa o modo carrossel (obs: algumas funcionalidades não funcionam sem esse modo ativo)
data-auto-card-disposition
data-auto-card-disposition="true" Ativa ou desativa o ajuste automático do tamanho dos cards para não sobrarem na tela
data-slider-auto-flow
data-slider-auto-flow="true 2000 10000" Ativa ou desativa o scroll automático dos cards, onde o segundo valor representa o intervalo entre um scroll e outro, e o terceiro valor representa um intervalo de repouso ao detectar qualquer interatividade do usuário com o slider (ambos valores são em milissegundos)
data-refs-indicator
data-refs-indicator="true" Ativa ou desativa o indicator ref (veja a imagem de referência)
data-refs-slider
data-refs-slider="true" Ativa ou desativa os slider refs (veja a imagem de referência)

Exemplo de configuração:

<section id="slider-exemplo" class="slider-container" data-slider-scroll-start="10" data-slider-image-src="./assets/slider-images/photo-{id}.svg" data-slider-endless="true" data-slider-size="90% auto" data-slider-card-width="400px" data-auto-card-disposition="true" data-slider-auto-flow="false 2000 10000" data-refs-indicator="true" data-refs-slider="true">
    <!-- [...] -->

Imagem de referência:



3. Configuração dos slider refs (Opcional)

O slider ref (veja a imagem de referência) é uma div a parte onde pode mostrar os valores do cartão que está em destaque do slider (obs: não há limite nos sliders refs que você pode criar, mas recomenda-se criar apenas um por slider; obs2: os slider refs funcionam apenas com o modo carrossel ativo), para a criação de um slider ref, siga os passos a seguir:

Primeiro passo, caso não haja, defina um id para o container do seu slider.

<section id="slider-exemplo" class="slider-container">
<!-- [...] -->

Segundo passo, crie uma seção no lugar que desejar do seu documento com a classe slider-ref e nela coloque a data-tag data-slider-ref e nela coloque o id definido antes (não é necessário chamar com # o id).

<section class="slider-ref" data-slider-ref="slider-exemplo">
</section>

Por fim, referêncie os elementos dentro do cartão em destaque criando uma div com a classe slider-image-ref para a imagem e a classe slider-content-ref para os demais itens textuais, para definir a referência coloque em ambos itens a data-tag data-slider-item-ref e dentro dela a classe ou a div referenciada (utilizar "#" para id e "." para classe).

<section class="slider-ref" data-slider-ref="slider-exemplo">
    <div style="width: 100px; height: 100px" class="slider-image-ref" data-slider-item-ref=".card-image"></div>  
    <div>
        <h2><span class="slider-content-ref" data-slider-item-ref=".card-title"></span></h2> 
        <p><span class="slider-content-ref" data-slider-item-ref=".card-description"></span></p> 
    </div>
</section>


4. Configuração do indicator ref (Opcional)

O indicator ref (veja a imagem de referência) é uma div a parte onde será mostrado a posição do cartão atual em relação ao primeiro cartão (obs: só é possível criar um indicator ref por slider; obs2: o indicator ref funciona apenas com o modo carrossel ativo), para a criação de um indicator ref, siga os passos a seguir:

Primeiro passo, caso não haja, defina um id para o container do seu slider.

<section id="slider-exemplo" class="slider-container">
<!-- [...] -->

Segundo passo, crie uma seção no lugar que desejar do seu documento com a classe slider-indicator e nela coloque a data-tag data-slider-ref e nela coloque o id definido antes (não é necessário chamar com # o id).

<section class="slider-indicator" data-slider-ref="slider-exemplo">
</section>

Terceiro passo, crie dentro dessa seção duas divs, uma com a classe indicator-wrapper e a outra com indicator-preset.

<div class="indicator-wrapper">
</div>
<div class="indicator-preset">
</div>

Por fim, dentro da classe indicator-preset crie quatro elementos do tipo button e atribua as classes indicator-previous, indicator-around-selected, indicator-selected e indicator-next uma para cada button. Caso queira definir uma estilização para seu indicator ref, você pode criar uma classe a parte e estiliza-la ao seu gosto ou utilizar uma já pronta no arquivo slider.css como indicator-round, indicator-box ou indicator-rect.

<section class="slider-indicator" data-slider-ref="slider-exemplo">
    <div class="indicator-wrapper">
    </div>
    <div class="indicator-preset">
        <button class="indicator-round indicator-previous"></button> <!-- previous (opcional) -->
        <button class="indicator-round indicator-around-selected indicator-around-merge"></button> <!-- around (opcional) -->
        <button class="indicator-round indicator-selected"></button> <!-- selected -->
        <button class="indicator-round indicator-next"></button> <!-- next -->
    </div>
</section>

Imagem de referência:





Obrigado!

About

javascript code of a slider for apply in your projects!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published