Iniciar a sua viagem transfronteiriça
Contactar-nos agora

Desenvolvimento de sítios Web serviço ao cliente

Serviço ao cliente

Designer (realização de protótipos Figma)

Agrupamento de imagens de variantes de produtos da Shopify

1, no código de fundo, nos snippets no interior para encontrar product-media.liquid

Adicionar código:

{% if current_variant_color == media.alt or media.alt == 'all' %}
dados coincidentes
{% endif %}

2, nos activos para encontrar global.js

Adicionar código:

updateMediaBasedOnVariant() {

    const mediaGallery = document.getElementById(

      `MediaGallery-${this.dataset.section}`

    );

    const options = this.currentVariant.options.map((option) =>

      opção.toLowerCase()

    );

    const mediaWrapper = Array.from(

      mediaGallery.querySelectorAll(".product__media-item")

    );

    const mediaThumbnailWrapper = mediaGallery.querySelectorAll(

      ".thumbnail-list__item"

    );

    const mediaModal = document.querySelectorAll(

      ".product-media-modal__content img"

    );

    // Definir a apresentação de miniaturas por defeito

    mediaThumbnailWrapper.forEach((media) => {

      media.removeAttribute('data-matched');

    });

    // Definir o ecrã modal dos média por defeito

    mediaModal.forEach((media) => {

      media.removeAttribute('data-matched');

    });

    const matchesMedia = mediaWrapper.filter((media) => {

      media.removeAttribute('data-matched');

      const alt = media.getAttribute("data-media-alt");

      const isMatch = alt === "all" || this.currentVariant.options[0] === alt;

      se (isMatch) {

        const mediaId = media.getAttribute("data-media-id");

        const id = mediaId.split("-").pop();

        media.setAttribute("data-matched", true); media.setAttribute("data-matched", true); Media.

        const thumbnail = mediaGallery.querySelector(

          `[data-target="${mediaId}"]`

        );

        miniatura && (miniatura.style.display = "bloco");

        thumbnail && thumbnail.setAttribute("data-matched", true);

        const modal = document.querySelector(

          `.product-media-modal__content img[data-media-id="${id}"]`

        );

        modal && (modal.setAttribute("data-matched", true));;

      }

      return isMatch.

    });

    customElements.whenDefined("media-gallery").then(() => {

      mediaGallery.setActiveMedia(

        matchesMedia[0].getAttribute("data-media-id"),

        verdadeiro

      );

    });

    // Repor a barra deslizante

    customElements.whenDefined("slider-component").then(() => {

      const sliders = mediaGallery.querySelectorAll("slider-component");

      sliders.forEach((slider) => {

        slider.resetPages();

      });

    });

  }

3, no interior dos activos, encontrar section-main-product.css

Código 1.

.product-thumbnail_slider .product__media-item:not([data-matched]) {
exibição: nenhum !importante;
}

Código 2.

.thumbnail-list.slider-tablet-up .thumbnail-list__item.slider__slide:not([data-matched]) {
exibição: nenhum !importante;
}

.product-media-modal__content>img:not([data-matched]) {
exibição: nenhum !importante;
}