Logo

dev-resources.site

for different kinds of informations.

Usando o shepherdjs para fazer tours em uma aplicação nuxt (vue.js) (Parte 2)

Published at
8/7/2022
Categories
shepherdj
nuxt
vue
portuguese
Author
cesarbhering
Categories
4 categories in total
shepherdj
open
nuxt
open
vue
open
portuguese
open
Author
12 person written this
cesarbhering
open
Usando o shepherdjs para fazer tours em uma aplicação nuxt (vue.js) (Parte 2)

Dando continuidade ao tutorial, aqui você encontra a primeira parte, vamos alterar mais alguns comportamentos do nosso projeto e aqui você encontra o repositório.

Para diminuir a largura do elemento do shepherd, iremos adicionar a classe width-limit, conforme código abaixo. Você pode declarar uma série de classes para que sejam aplicadas no elemento do shepherd. Por hora iremos aplicar apenas uma classe. É necessário retirar o scoped da declaração de style, então tenha muito cuidado.

Também vamos alterar a opção on dentro de attachTo, que escolhe o posicionamento da flecha/elemento shepherd, vamos trocar de 'top' para 'right-end'.

mounted() {
    this.$nextTick(() => {
      const tour = this.$shepherd({
        useModalOverlay: true,
        defaultStepOptions: {
          popperOptions: {
            modifiers: [{ name: 'offset', options: { offset: [0,50] } }]
          }
        }
      });

      tour.addStep({
        classes: 'width-limit',
        attachTo: { element: '#shepherd-teste', on: 'right-end' },
        text: 'Test'
      });

      tour.start();
      });
    }
Enter fullscreen mode Exit fullscreen mode

E a declaração em style

.width-limit {
  max-width: 200px;
}
Enter fullscreen mode Exit fullscreen mode

E assim ficou o nosso elemento, menor e renderizado a direita.

Mostra o elemento shepherd menor e renderizado a direita

Você deve ter notado que com a mudança de lugar, a seta que aponta para o elemento a ser destacado ficou "fora do esquadro" e isso incomoda um pouco. Para corrigir este tipo de situação usamos o modificador do popper chamado 'arrow', assim a opção popperOptions fica da seguinte forma:

popperOptions: {
  modifiers: [{ name: 'offset', options: { offset: [0, 50] } }, 
              { name: 'arrow', options: { padding: 20 } }]
}
Enter fullscreen mode Exit fullscreen mode

E o elemento fica desta forma (bem mais apresentável), com a seta deslocada mais ao centro e o elemento no mesmo lugar. Usei o valor 20 pois é o que faz sentido para o exemplo, mas você pode testar com valores positivos e negativos.

Elemento shepherd com a flecha/arrow em posição alterada

Para deixar o elemento mais completo, podemos adicionar um título, e adicionar um botão de cancelamento do tutorial. As opções utilizadas serão cancelIcon e title. Importante notar que a opção cancelIcon se trata de um objeto com a propriedade enabled que é um valor booleano.

O visual e o código ficam da seguinte maneira:

Elemento shepherd com título

this.$shepherd({
          useModalOverlay: true,
          defaultStepOptions: {
            cancelIcon: {enabled: true},
            popperOptions: {
              modifiers: [{ name: 'offset', options: { offset: [0, 50] } }, 
              { name: 'arrow', options: { padding: 20 } }]
            }
         }
});

tour.addStep({
  classes: 'width-limit',
  attachTo: { element: '#shepherd-teste', on: 'right-end' },
  title: 'Test Title',
  text: 'Test'
});
Enter fullscreen mode Exit fullscreen mode

Continua em breve...

portuguese Article's
28 articles in total
Favicon
Fundamentos da Segurança em Aplicações Web
Favicon
🇫🇷🇪🇸🇩🇪🇮🇹🇯🇵 What if we made DEV.to polyglot ?
Favicon
Usando o shepherdjs para fazer tours em uma aplicação nuxt (vue.js) (Parte 2)
Favicon
Usando o shepherdjs para fazer tours em uma aplicação nuxt (vue.js) (Parte 1)
Favicon
Criando um ambiente de desenvolvimento com Nix
Favicon
Usando constant e immutable para reduzir o custo de gás
Favicon
Introdução ao SEO
Favicon
Certificações AWS — Por quê e de que forma
Favicon
Ainda dá tempo de ser DEV?
Favicon
Como deixar os testes Jest mais rápidos?
Favicon
TCP Handshakes 101: o básico pra iniciar no assunto
Favicon
Introdução ao Bean Validation: Deixe o Java Trabalhar!
Favicon
TypeScript vs Dart - Coleções iteráveis
Favicon
Rust e eu – como tem sido a experiência e minha bibliografia comentada!
Favicon
O front-end além da web
Favicon
GitHub Alias FTW!
Favicon
Seu Commit + Rápido
Favicon
Iniciando com Github Desktop no Windows e MacOS
Favicon
Angular Reactive Forms Custom Validators[Português]
Favicon
/dev/All – uma comunidade de pessoas que amam programar
Favicon
Como eu gerencio o meu tempo.
Favicon
Uber Movement: antes e depois do COVID-19
Favicon
Por que você deveria dar uma chance ao Tailwind CSS
Favicon
5 Dicas para você saber no Javascript
Favicon
Como se constrói um sistema corporativo?
Favicon
Opções do Bash
Favicon
Depois do Café - Episodio 6 - Corona Edition - O que fazer no tempo livre?
Favicon
Episódio 5 - Corona Edition: Trabalhando de Casa

Featured ones: