私が取り組んでいるカスタムメイドの製品ビュー ページには、ベース イメージ (大きいイメージ) と、メディア ギャラリー内の製品に関連付けられた他のイメージであるサムネイルのリストがあります (これらは通常のイメージであり、定義されたイメージではありません)。サムネイル)、私が任されたのは、サムネイルをクリックすると上のベース画像が変更されるようにすることです
私はそれが機能していますが、問題があります。画像を変更すると、変更される画像は非常にピクセル化されたものになります。ベース画像はもともと737x578であるため、画像が小さい場合は引き伸ばされることを理解していますが、サムネイルの元となった画像は、元のベース画像とほぼ同じサイズですが、48x48 にサイズ変更されているだけです。
Firefoxの「画像情報を表示」の情報を見ると、画像のsrcがmagentoキャッシュ(media/catalog/product/cache/1/thumbnail/48x/9df78eab33525d08d6e5fb8d27136e95/images/)からのものであり、私が持っている元のファイルからのものではないことがわかりますメディアフォルダに
ベースイメージはこのように作成されています
<a class="product-image image-zoom" id="main-image" title="<?php echo $this->htmlEscape($_product->getImageLabel()); ?>" href="<?php echo $this->helper('catalog/image')->init($_product, 'image'); ?>">
<?php
$_img = '<img src="'.$this->helper('catalog/image')->init($_product, 'image')->resize(737, 578).'" width="737" height="578" alt="'.$this->htmlEscape($_product->getImageLabel()).'" title="'.$this->htmlEscape($_product->getImageLabel()).'" />';
echo $_helper->productAttribute($_product, $_img, 'image');
?>
</a>
サムネイルがこのように生成されている間
<ul id="image-list">
<?php foreach ($this->getGalleryImages() as $_image): ?>
<li>
<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(48); ?>" width="48" height="48" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" />
</li>
<?php endforeach; ?>
</ul>
これは、画像を切り替えるために使用しているjavascriptです
jQuery(document).ready(function()
{
jQuery("#image-list li img").click(function()
{
jQuery("#main-image img").attr("src", jQuery(this).attr("src"));
});
});
ベース画像をサムネイルで使用される元の画像に置き換えるには、JavaScript にどのような変更を加える必要がありますか?明らかに、タグの src 属性を変更するだけでは十分ではありません。