【问题标题】:Is there a way to add JQuery zoom to a product picture in a new theme in shopify?有没有办法在 shopify 的新主题中将 JQuery 缩放添加到产品图片?
【发布时间】:2021-01-22 17:11:36
【问题描述】:

我将参考的文章可以在这里找到:https://www.shopify.com/partners/blog/jquery-image-zoom

我已经按照 JQuery 缩放到 tee 的步骤,但我仍然无法让插件工作。

  1. JQuery 已安装在项目中
  2. 我将插件文件添加到 assets 文件夹中
  3. 我编辑了 'product-template.liquid' 文件以添加 data-zoom 属性并将类 'image-zoom' 添加到图像标签
  4. 我将站点中的脚本添加到“product-template.liquid”文件中,但我不确定它是否应该在该位置。

理论上,缩放应该可以正常工作吗?我已经尝试了一堆不同的代码,但似乎没有任何效果。

我是编辑 shopify 代码和 JS 的新手,因此非常感谢任何帮助。

我可以完美地看到图像,唯一缺少的是缩放。

我在“product-template.liquid”中的图片代码:

{%- for image in product.images -%}
        <div class="image-container product-single__photo product__photo-container product__photo-container-{{ section.id }} js{% unless image == featured_image %} hide{% endunless %}"
             id="ProductPhoto"
             style="max-width: {% include 'image-width' with image: image, width: 480 %}px;"
             data-image-id="{{ image.id }}">
          <a href="{{ image | img_url: '2048x2048' }}" 
             class="js-modal-open-product-modal product__photo-wrapper product__photo-wrapper-{{ section.id }}"
             style="padding-top:{{ 1 | divided_by: image.aspect_ratio | times: 100}}%;">
            {% assign img_url = image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' %}
            <img class="lazyload{% unless image == featured_image %} lazypreload{% endunless %} image-zoom"
              src="{{ image | img_url: '150x150' }}"
              data-src="{{ img_url }}" 
              data-widths="[180, 240, 360, 480, 720, 960, 1080, 1296, 1512, 1728, 2048]"
              data-aspectratio="{{ image.aspect_ratio }}"
              data-sizes="auto"
              alt="{{ image.alt | escape }}"
              data-zoom="{{ image | img_url: '2048x2048', scale: 2 }}">
          </a>
          
        </div> 
      {%- endfor -%}

预览产品页面时,我得到 this 错误三次。

Tiger queen 是产品变体,我认为它显示错误,因为它只是网站的预览但我不确定。

【问题讨论】:

  • 我认为 img_url 需要是包含较大图像的文件的实际 url,jquery 错误告诉您这样的文件不存在并且错误中的地址看起来已损坏

标签: javascript html jquery shopify liquid


【解决方案1】:

我认为img_url 需要是包含较大图像的文件的实际 url,jquery 错误告诉您这样的文件不存在并且错误中的地址看起来已损坏

【讨论】:

  • 我不认为这是问题所在,因为 img_url 是任意的,因为该函数是为网站上的每个产品页面创建的。如果我确实需要更改它,我应该将其更改为什么而不使其成为特定的 url?
  • 您需要更大版本的图像,您需要将该文件存储在某处并将其提供给 js 函数,我认为这就是 img_url 的作用 - 成为更大的特定 url图像的版本。尝试对其进行硬编码,看看是否可行
  • 问题是我不知道如何提供 '%7Bwidth%7Dx.png' 或为什么它甚至被访问。我查看了“%7Bwidth%7Dx.png”,还有其他人似乎遇到了与我相同的问题,但完全相同的 url 却没有链接。
  • 为了让插件缩放,您需要一个实际更大的图像文件。这是您需要自己提供的东西,并将其上传到服务器。然后,您将使用 img-url 传递的 'your_actual_large_image_file_address.png' 而不是 '%7Bwidth%7Dx.png'。原因是您需要为 JS 插件提供较大的图像文件,它不能只放大您的小图像(出于性能原因,您也没有为小版本加载全尺寸图像)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
相关资源
最近更新 更多