Como adicionar controle deslizante de depoimento no Shopify [SEM APP]

Shopify testimonial section image

Compatibilidade: Compatível com todos os temas do Shopify.

Você está enfrentando alto tráfego em sua loja Shopify, mas baixas taxas de conversão? Adicionar um controle deslizante de depoimento à sua loja pode ajudar a aumentar a credibilidade e incentivar mais compras. Ao apresentar feedback positivo dos clientes, você pode construir a confiança de compradores em potencial e esclarecer quaisquer dúvidas que eles possam ter sobre seus produtos ou serviços.

A boa notícia é que adicionar um controle deslizante de depoimento à sua loja Shopify é fácil e personalizável. Você pode escolher a posição do nome do autor e personalizar a cor da borda para combinar com a marca da sua loja. Seguindo as etapas abaixo, você pode criar uma ferramenta de marketing poderosa que pode ajudar a impulsionar as vendas e aumentar a satisfação do cliente.

Não desperdice o alto tráfego - adicione um controle deslizante de depoimento à sua loja Shopify hoje mesmo e comece a converter mais visitantes em clientes fiéis!

Por favor, pode ver este controle deslizante de depoimento em nossa loja de demonstração aqui . Senha: made4uo

O que você está comprando:

  • Adicione depoimentos com links para fornecer legitimidade
  • Opção de adicionar imagem dos autores ao lado do nome
  • Personalize as cores. Remova a cor para remover a borda
  • Compatível com dispositivos móveis

O que torna nosso código melhor:

  • Não usamos bibliotecas externas, com isso dito, nosso código não terá nenhum efeito mínimo no desempenho de velocidade do seu site
  • Não deixamos nem adicionamos códigos para anunciar em nosso site
  • Nosso código é compatível com dispositivos móveis

Quaisquer problemas relacionados ao código serão corrigidos sem custo adicional, excluindo solicitações de customização de código. Basta entrar em contato conosco em "Converse conosco". Estamos a apenas um botão de distância.

Para iniciar:

1. Vá para loja Admin Shopify > Temas > Ações > Editar código

2. Na pasta Seção, crie uma nova seção, nomeie-a como quiser e substitua o código padrão pelo código abaixo.

 { %- estilo -% } 
. seção - { { seção. id } } - preenchimento {
 preenchimento - topo : { { seção. configurações . preenchimento_top | vezes : 0,75 | redondo : 0 } } px ; 
preenchimento - inferior : { { seção. configurações . preenchimento_bottom | vezes : 0,75 | redondo : 0 } } px ;
 }
 . seçãoHeader {
 exibição : flexível ;
 flex - direction : coluna ; 
}
 . sectionHeader :: depois de {
 conteúdo : ' {{section.settings.swipeable_text}} ' ;
 Mostrar nenhum ;
 margem : automática ;
 tamanho da fonte : 14px ;
 transformação de texto : maiúscula ;
 animação : piscar 1,5s linear infinito ;
 } 
@quadros-chave piscam {
 0 % {
 opacidade : 0 ;
 }
 30 % {
 opacidade : 0,5 ;
 }
 100 % {
 opacidade : 1 ;
 }
 } 
. seçãoHeader > p {
 alinhamento de texto : centro ;
 }
 depoimento - controle deslizante [ dados - controle deslizante ] {
 exibição : flexível ;
 posição : relativa ;
 flex - wrap : herdar ;
 estouro -x : automático ; 
scroll - snap - type : x obrigatório ;
 comportamento de rolagem : suave ;
 rolagem - preenchimento - esquerda : 0 ;
 - webkit - overflow - rolagem : toque ;
 margem inferior : 1rem ; 
-ms - overflow - style : nenhum ;
 largura da barra de rolagem : nenhuma ;
 }
 depoimento - controle deslizante [ dados - controle deslizante ] ::- webkit - barra de rolagem {
 Mostrar nenhum ;
 } 
depoimento - controle deslizante [ dados - controle deslizante - item ] {
 borda : var ( -testimonial - border - width ) sólido transparente ;
 }
 depoimento - controle deslizante li {
 estilo de lista : nenhum ;
 } 
depoimento - controle deslizante [ dados - contador - contêiner ] {
 exibição : flexível ;
 justificar - conteúdo : centro ;
 alinhar - itens : centro ;
 }
 depoimento - controle deslizante [ dados - contador ] {
 altura : 10px ; 
exibição : flexível ;
 margem : automático 5px ;
 preenchimento : 20px 0 ;
 }
 depoimento - controle deslizante [ dados - contador ] > span {
 largura : 20px ; 
plano de fundo : { { bloco. configurações . não ativo } } ;
 }
 . citaçõesSlider {
 preenchimento - esquerda : 0 ;
 scroll - snap - type : x obrigatório ;
 rolagem - preenchimento : 10 %; 
}
 . citaçõesSlide {
 scroll - snap - align : start ;
 }
 . redondo {
 altura : 20px ;
 proporção de aspecto : 1 ;
 borda - raio : 50 %;
 } 
. canto arredondado {
 altura : 5px ;
 raio da borda : 5px ;
 }
 . não - volta - esquina {
 altura : 5px ;
 }
 . slickDots > . slide__link -- ativo > span { 
plano de fundo : { { seção. configurações . Cor da borda } } ;
 }
 . citaçõesWrapper blockquote {
 altura : 100 %;
 margem : 0 ;
 preenchimento : 2rem ;
 borda - esquerda : nenhuma ; 
exibição : flexível ;
 flex - direction : coluna ;
 justificar - conteúdo : espaço entre ;
 lacuna : 20px ;
 }
 . quoteIcon svg {
 largura : 20px ;
 }
 . autorWrapper {
 exibição : flexível ; 
lacuna : 10px ;
 alinhar - itens : centro ;
 }
 . autorWrapper > img {
 borda - raio : 50 %;
 proporção de aspecto : 1 ;
 largura : 70px ;
 altura : automático ; 
ajuste ao objeto : capa ;
 }
 . autorWrapper > citar {
 exibição : flexível ;
 flex - direction : coluna ;
 alinhar - itens : centro ;
 justificar - conteúdo : centro ;
 } 
. autorWrapper > citar > span {
 tamanho da fonte : 12px ;
 }
 . quoteIcon {
 exibição : flexível ;
 justificar - conteúdo : espaço entre ;
 alinhar - itens : centro ;
 }
 . quoteIcon a { 
tamanho da fonte : 12px ;
 }
 . slickDots span {
 plano de fundo : { { seção. configurações . não ativo } } ;
 }
 Tela @media somente e ( largura mínima : 950px ) {
 . slideCol { 
min - largura : 33 %;
 }
 }
 Tela @media somente e ( largura máxima : 949px ) {
 . slideCol {
 min - largura : 50 %;
 }
 } 
Tela @media somente e ( largura máxima : 750px ) {
 . pontos lisos {
 Mostrar nenhum ! importante
 }
 . sectionHeader :: depois de {
 exibição : bloco
 }
 }
 Tela @media somente e ( largura máxima : 481px ) { 
. slideCol {
 min - largura : 100 %;
 }
 }
 @media screen e ( largura mínima : 750px ) {
 . seção - { { seção. id } } - preenchimento { 
preenchimento - topo : { { seção. configurações . padding_top } } px ;
 preenchimento - inferior : { { seção. configurações . padding_bottom } } px ;
 }
 }
 . depoimento - seção { 
fundo - cor : { { seção. configurações . cor_da_seção } }
 } 
. seção de depoimento . quoteSliderText , . seção de depoimento . seçãoHeader > h1 , . seção de depoimento . seçãoHeader > h2 {
 cor : { { seção. configurações . cor do texto } }
 } 
. quoteIcon svg {
 preencher : { { seção. configurações . cor do texto } }
 }
 . citaçõesSlide . slide -- ativo { 
borda : var ( -testimonial - border - width ) solid var ( -testimonial - border - color ) ;
 border - radius : var ( -testimonial - border - radius )
 } 
{ %- estilo final -% }
 < div
 class = "largura da página"
 style = "padding-top: {{ section.settings.padding_top | append: 'px' }} ; padding-bottom: {{section.settings.padding_bottom | append: 'px' }} "
 >
 < div class = "seçãoHeader" > 
{ % se seção. configurações . título % }
 < estilo h1 = "margem superior: 0; margem inferior: 0" > { { seção. configurações . título | escapar } } </ h1 > 
{ %- fim se % }
 { % se seção. configurações . descrição -% } 
< estilo h2 = "margem: 0; alinhamento de texto: centro" > { { seção. configurações . descrição } } </ h2 >
 { %- fim se % }
 </div> _ _ 
{ % se seção. blocos . tamanho > 0 % }
 < depoimento - controle deslizante
 class = "quotesWrapper" 
style = "--testimonial-border-width: {{ section.settings.border_width | append: 'px' }} ; --testimonial-border-color: {{section.settings.border_color}} ; --testimonial-border -radius: {{section.settings.border_radius | append: 'px'}} "
 >
 < div class = "quotesSliderWrapper slider__slide" >
 < ul class = "quotesSlider" dados - controle deslizante > 
{ % para bloco na seção. blocos % }
 < li
 class = "quotesSlide slideCol {% if section.blocks.size == 1 %} quotes-slide--single {% endif %} {% if forloop.first %} slide--active {% endif %} "
 dados - controle deslizante - item 
aria - labelledby = "slide {{ block.id }} "
 { { bloquear. shopify_atributos } }
 >
 < blockquote class = "quoteSliderText" > 
{ % se bloco. configurações . citação ! = em branco % }
 < div class = "rte" >
 < span class = "quoteIcon" >
 < svg 
aria - oculto = "verdadeiro"
 focalizável = "falso"
 role = "apresentação"
 class = "ícone ícone-citação"
 viewBox = "0 0 41 35"
 > 
< caminho d = "M10.208 17.711h6.124v16.332H0V21.684C0 8.184 5.444.956 16.332 0v6.125c-4.083 1.14-6.124 4.414-6.124 9.82v1.766zm24.49 80h6.124v16.332H24.498V21.684C24.498 8.184 29.942.956 40,83 0v6.125c-4.083 1.14-6.124 4.414-6.124 9.82v1.766z" />
 </svg> _
 { % se bloco. configurações . verificar_comment != em branco % } 
<a href = "{{block.settings.verify_comment}}" target = "_blank" > _ {{block.settings.verify_comment}} _ _ _
 { { - bloquear. configurações . verificar_comment_text - } }
 </a> _
 { %- fim se % } 
</span> _
 { { bloquear. configurações . citar } }
 </div> _ _
 { % fim se % } 
< div class = "authorWrapper" style = "justify-content: {{block.settings.author_position }} " >
 { % se bloco. configurações . imagem_do_autor ! = em branco % }
 < imagem 
src = " {{block.settings.author_image | img_url: " pequeno " }} "
 alt = " {{block.settings.author_image.alt}} "
 style = "posição do objeto: {{block.settings.image_position}} "
 largura = "70"
 altura = "70"
 > 
{ % fim se % }
 { % se bloco. configurações . título ! = em branco % }
 <citar> _ 
{ { bloquear. configurações . título | escapar | prefixar : '- ' } }
 { % se bloco. configurações . data % } 
< span class = "commentDate" > { { bloco. configurações . data } } </ span >
 { % fim se % }
 </ citar > 
{ % fim se % }
 </div> _ _
 </blockquote> _
 </ li >
 { % fim para % }
 </ul> _
 </div> _ _ 
{ % se seção. blocos . tamanho > 3 % }
 < ul class = "slickDots" dados - contador - contêiner >
 { %- para bloco na seção. blocos -% } 
< li
 { % se forloop. primeiro % }
 classe = "slide__link--ativo"
 { % fim se % }
 dados - contador = " {{forloop.index0}} "
 > 
< span aria - label = "slide número {{forloop.index }} " class = " {{section.settings.dot_design}} " </ span >
 </ li >
 { %- fim para -% }
 </ul> _ 
{ % fim se % }
 </ depoimento - controle deslizante >
 { % fim se % }
 </div> _ _
 { % esquema % }
 {
 "nome" : "Depoimentos" , 
"class" : "seção de depoimento" ,
 "configurações" : [
 {
 "tipo" : "texto" ,
 "id" : "título" ,
 "rótulo" : "Título" ,
 "default" : "Depoimentos" 
} ,
 {
 "type" : "richtext" ,
 "id" : "descrição" ,
 "rótulo" : "Texto" ,
 "default" : "<p>Diga por que os clientes devem comprar em sua loja.</p>"
 } ,
 { 
"tipo" : "texto" ,
 "id" : "texto_swipeável" ,
 "rótulo" : "Texto" ,
 "default" : "Conteúdo deslizável"
 } ,
 {
 "tipo" : "cor" , 
"id" : "border_color" ,
 "label" : "Borda e cor ativa" ,
 "padrão" : "#fff"
 } ,
 {
 "tipo" : "cor" ,
 "id" : "não_ativo" , 
"label" : "Nenhuma cor ativa" ,
 "padrão" : "#000"
 } ,
 {
 "tipo" : "intervalo" ,
 "id" : "largura_fronteira" ,
 "min" : 0 , 
"máximo" : 20 ,
 " passo 1 ,
 "unidade" : "px" ,
 "padrão" : 2 ,
 "label" : "Largura da borda ativa"
 } ,
 { 
"tipo" : "intervalo" ,
 "id" : "border_radius" ,
 "min" : 0 ,
 "máximo" : 20 ,
 " passo 1 ,
 "unidade" : "px" , 
"padrão" : 0 ,
 "label" : "Raio da borda ativa"
 } ,
 {
 "tipo" : "cor" ,
 "id" : "seção_cor" ,
 "label" : "Cor de fundo da seção"
 } , 
{
 "tipo" : "cor" ,
 "id" : "text_color" ,
 "label" : "Cor do texto da seção"
 } ,
 {
 "tipo" : "selecionar" ,
 "id" : "ponto_design" , 
"label" : "Design de ponto" ,
 "default" : "arredondamento" ,
 "opções" : [
 {
 "valor" : "canto arredondado" ,
 "label" : "canto redondo"
 } ,
 { 
"value" : "no-round-corner" ,
 "label" : "canto quadrado"
 } ,
 {
 "valor" : "redondo" ,
 "rótulo" : "redondo"
 }
 ]
 } ,
 { 
"tipo" : "intervalo" ,
 "id" : "padding_top" ,
 "min" : 0 ,
 "máximo" : 99 ,
 " passo 1 ,
 "unidade" : "%" , 
"padrão" : 0 ,
 "label" : "Preenchimento da seção superior"
 } ,
 {
 "tipo" : "intervalo" ,
 "id" : "padding_bottom" ,
 "min" : 0 , 
"máximo" : 99 ,
 " passo 1 ,
 "unidade" : "%" ,
 "padrão" : 0 ,
 "label" : "Preenchimento da seção inferior"
 }
 ] , 
"blocos" : [
 {
 "tipo" : "citação" ,
 "nome" : "Depoimento" ,
 "configurações" : [
 {
 "tipo" : "url" , 
"id" : "verify_comment" ,
 "label" : "Verificar link do comentário"
 } ,
 {
 "tipo" : "texto" ,
 "id" : "verify_comment_text" ,
 "label" : "Verificar etiqueta do comentário" 
} ,
 {
 "type" : "richtext" ,
 "id" : "citação" ,
 "rótulo" : "Texto" ,
 "default" : "<p>Adicione avaliações e depoimentos de clientes para mostrar os clientes satisfeitos da sua loja.</p>"
 } ,
 { 
"tipo" : "texto" ,
 "id" : "título" ,
 "rótulo" : "Autor" ,
 "default" : "Nome do autor"
 } ,
 {
 "tipo" : "texto" , 
"id" : "data" ,
 "label" : "Data em que o comentário foi criado"
 } ,
 {
 "tipo" : "selecionar" ,
 "id" : "posição_autor" ,
 "label" : "Posição de informações do autor" , 
"padrão" : "centro" ,
 "opções" : [
 {
 "valor" : "centro" ,
 "rótulo" : "centro"
 } ,
 {
 "valor" : "início flexível" , 
"rótulo" : "esquerda"
 } ,
 {
 "valor" : "flex-end" ,
 "rótulo" : "certo"
 }
 ]
 } ,
 {
 "type" : "image_picker" , 
"id" : "autor_imagem" ,
 "label" : "Imagem do autor"
 } ,
 {
 "tipo" : "selecionar" ,
 "id" : "posição_imagem" ,
 "label" : "Posição de ajuste do objeto de imagem" , 
"padrão" : "superior" ,
 "opções" : [
 {
 "valor" : "topo" ,
 "rótulo" : "topo"
 } ,
 {
 "valor" : "centro" , 
"rótulo" : "centro"
 } ,
 {
 "valor" : "inferior" ,
 "rótulo" : "inferior"
 } ,
 {
 "valor" : "esquerda" , 
"rótulo" : "esquerda"
 } ,
 {
 "valor" : "certo" ,
 "rótulo" : "certo"
 } ,
 {
 "valor" : "desativar" , 
"rótulo" : "desativado"
 }
 ]
 }
 ]
 }
 ] ,
 "predefinições" : [
 {
 "nome" : "Depoimentos" ,
 "categoria" : "Texto" , 
"blocos" : [
 {
 "tipo" : "citação"
 } ,
 {
 "tipo" : "citação"
 } ,
 {
 "tipo" : "citação"
 }
 ]
 }
 ] 
}
 { % termina o esquema % }


3. Em seguida, abra a pasta Asset, encontre global.js ou theme.js. Em seguida, adicione o código abaixo.

 classe TestimonialSlider estende HTMLElement {
 construtor ( ) {
 super ( ) ; 
esse . t = isso . querySelector ( ".botões deslizantes" ) ;
 esse . eu = isso . querySelector ( "[controle deslizante de dados]" ) ; 
esse . h = isso . querySelectorAll ( "[data-slider-item]" ) ;
 esse . eu = Matriz. from ( this.querySelectorAll ( "[contador de dados] " ) ) ; 
esse . eu . forEach ( ( t ) => t.addEventListener ( "clique" , isto.o.ligar ( este ) ) ) ) ; 
const t = novo ResizeObserver ( ( t ) => this . u ( ) ) ;
 t. observe ( este.i ) ; _ 
esse . eu . addEventListener ( " rolar " , isto.u.ligar ( este ) ) ;
 }
 você ( ) { 
esse . m = isso . h [ 1 ] . offsetLeft - este . h [ 0 ] . deslocamentoEsquerda ; 
esse . páginaatual = Math. round ( this.i.scrollLeft / this.m ) + 1 ; _ _ _ 
if ( este . h . comprimento > 3 ) isto . v ( this.currentPage - 1 ) ; _
 }
 atualizar ( t ) { 
esse . v ( t ) ;
 esse . k = t * isto . h [ 0 ] . largura do cliente ; 
esse . eu . scrollTo ( { esquerda : este.k } ) ;
 }
 o ( t ) {
 const i = t. atualTarget . conjunto de dados . T ; 
esse . passo = eu ;
 esse . atualizar ( esta etapa ) ;
 }
 v ( t ) {
 esse . eu . forEach ( ( t ) => { 
t. lista de classes . remover ( "slide__link--ativo" ) ;
 t. removeAttribute ( "aria-atual" ) ;
 } ) ; 
esse . eu [ t ] . lista de classes . adicionar ( "slide__link--ativo" ) ;
 esse . eu [ t ] . setAttribute ( "aria-current" , true ) ; 
esse . h . forEach ( ( t ) => {
 t. lista de classes . remover ( "slide--ativo" ) ;
 t. removeAttribute ( "aria-atual" ) ;
 } ) ; 
esse . h [ t ] . lista de classes . add ( "slide--ativo" ) ;
 esse . h [ t ] . setAttribute ( "aria-current" , true ) ;
 }
 } 
elementos personalizados. define ( "testimonial-slider" , TestimonialSlider ) ;

4. Por último, vá ao seu editor de tema e adicione a seção chamada “Depoimentos”.

Vídeo a ser postado em breve. Por enquanto, verifique nas imagens as opções disponíveis no editor de temas.

Configurações da seção de depoimentos:

Configurações da seção deslizante de depoimento

Configurações de bloqueio de depoimento:

Configurações de bloqueio deslizante de depoimento

Atualizado em 06/04/23: Adicionadas mais configurações de opções na Seção. Por favor veja a imagem acima

É isso (",)

0 comentários

Deixe um comentário