Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

81
Visualizações
fancybox con vainilla js

Tengo un sitio con un zoom cuando se hace clic en la imagen de un producto, y estaba usando fancybox. Quería deshacerme de fancybox, así que creé una función simple que agrega algo de html al DOM cuando se llama al método zoomModal.

La parte complicada es abrir el modal con fancybox se ve así:

 setTimeout(() => { $.fancybox.open({ src: '.zoom-container', type: 'inline', opts: { modal: true } }); }, 150)

Solo tenemos que establecer el src en el bloque contenedor que se muestra a continuación. Tengo este pequeño bloque de código que es el contenido del zoom.

 <div class="zoom-container"> <div class="js-container_main_image"> <img class="js-product-image" :src="selected_product.images[zoom_image_index].src" alt="" title="" /> </div> <div class="zoom_thumbnails_container js-thumbnails_container"> <div class="js-thumbs"> <img class="js-product-image" :class="{selected: zoom_image_index == imageIndex}" v-for="(image, imageIndex) in selected_product.images" :src="_utils.resizeImage(image.src, 'x950')" :alt="image.alt" :title="selected_product.title" @click="zoom_image_index = imageIndex" /> </div> </div> </div>

Todo aquí funciona muy bien y las directivas vue funcionan como deberían. Sin embargo, sin fancybox, tengo que llamar a mi modal así

 zoomModal.open() const zoomContent = document.querySelector('.zoom-container').cloneNode(true) document.querySelector('.zoom-modal').append(zoomContent)

y pierdo la funcionalidad de vue. No entiendo qué está haciendo fancybox.open que parece que no puedo replicar en vanilla js. Lo único que funciona es si uso insertAdjacentElement pero eso es cortar y pegar y luego, cuando se abre el zoom por un segundo, nada funciona ya que se llama remove () en el modal

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda