Animações
Animações no clique
v-click
Para aplicar "animações no clique" para os elementos, você pode usar a diretriz v-click
ou os componentes <v-click>
.
# Olá
<!-- Uso do componente: isto ficará invisível até você pressionar "próximo" -->
<v-click>
Olá Mundo
</v-click>
<!-- Uso da diretriz: isto ficará invisível até você pressionar "próximo" pela segunda vez -->
<div v-click class="text-xl p-2">
Eae!
</div>
v-after
O uso do v-after
é similar ao do v-click
, mas ele tornará o elemento visível quando o v-click
anterior tiver sido disparado.
<div v-click>Olá</div>
<div v-after>Mundo</div>
Quando você clicar no botão "próximo", tanto Olá
quanto Mundo
aparecerão simultaneamente.
v-click-hide
Tem o mesmo comportamento do v-click
, mas em vez de fazer o elemento aparecer, faz o elemento invisível após do clique.
<div v-click-hide>Olá</div>
v-clicks
v-clicks
só é provido como um componente. É uma alternativa a aplicar a diretriz v-click
em todos os elementos dentro dele. Ele é especialmente útil quando se está trabalhando com listas.
<v-clicks>
- Item 1
- Item 2
- Item 3
- Item 4
</v-clicks>
Um item se tornará visível a cada vez que você clicar em "próximo".
Contagem de Cliques Customizadas
Por padrão, o Slidev calcula quantos passos são necessários antes de passar para o próximo slide. Você pode sobrepor está configuração informando a propriedade clicks
no frontmatter:
---
# 10 cliques neste slide, antes de passar para o próximo
clicks: 10
---
Ordenação
Passando o índice o clique nas suas diretrizes, você pode customizar a ordem dos aparecimentos.
<div v-click>1</div>
<div v-click>2</div>
<div v-click>3</div>
<!-- a ordem é inversa -->
<div v-click="3">1</div>
<div v-click="2">2</div>
<div v-click="1">3</div>
---
clicks: 3
---
<!-- visível após 3 cliques -->
<v-clicks at="3">
<div>Oi</div>
</v-clicks>
Transição de Elementos
Quando você aplica a diretriz v-click
aos seus elementos, a eles serão anexados a classe slidev-vclick-target
. Quando os elementos estão ocultos, a classe slidev-vclick-hidden
também será anexada. Por exemplo:
<div class="slidev-vclick-target slidev-vclick-hidden">Texto</div>
Após o clique, isto se tornará
<div class="slidev-vclick-target">Texto</div>
Por padrão, uma transição suave de opacidade é aplicada à essas classes:
// o padrão
.slidev-vclick-target {
transition: opacity 100ms ease;
}
.slidev-vclick-hidden {
opacity: 0;
pointer-events: none;
}
Você pode substituí-las no seu CSS customizado para alterar os efeitos de transição.
Por exemplo, você pode conseguir uma transição de aumentar a escala assim:
// styles.css
.slidev-vclick-target {
transition: all 500ms ease;
}
.slidev-vclick-hidden {
transform: scale(0);
}
Para especificar animações para um único slide ou layout definido:
.slidev-page-7,
.slidev-layout.my-custom-layout {
.slidev-vclick-target {
transition: all 500ms ease;
}
.slidev-vclick-hidden {
transform: scale(0);
}
}
Aprenda mais sobre a customização de estilo.
Movimento
O Slidev tem o @vueuse/motion integrado. Você pode usar a diretriz v-motion
em qualquer elemento para aplicar movimento a ele. Por exemplo:
<div
v-motion
:initial="{ x: -80 }"
:enter="{ x: 0 }">
Slidev
</div>
O texto Slidev
se moverá de -80px
até sua posição original na inicialização.
Nota: Slidev pré-carrega o próximo slide por performance, o que significa que as animações podem começar antes de você navegar até a página. Para fazer as animações funcionarem corretamente, você pode desabilitar o pré-carregamento no slide em particular.
--- preload: false ---
Ou manipular o ciclo de vida do elemento com o
v-if
para ter mais controle:<div v-if="$slidev.nav.currentPage === 7" v-motion :initial="{ x: -80 }" :enter="{ x: 0 }"> Slidev </div>
Saiba mais: Demonstração | @vueuse/motion | v-motion | Presets
Transições de Página
O suporte integrado para transição entre slides AINDA NÂO é provido na versão atual. Estamos planejando adicionar o suporte na próxima versão principal. Até lá, você ainda pode usar estilos customizados e bibliotecas para fazer isso.