0

目的: Magentoのカテゴリ グリッド ビューでのマウスオーバー アクションでの製品画像の自動変更を実現します。

最初に、私はコーダーではないことをお詫びします。愚かな質問についてはご容赦ください。

画像変更機能を実現する次のコードを考え出しました:

<a href="TARGET URL GOES HERE"><img src="URL OF FIRST IMAGE GOES HERE" onmouseover="this.src='URL OF SECOND IMAGE GOES HERE'" onmouseout="this.src='URL OF FIRST IMAGE GOES HERE'" /></a>

ただし、最初に製品の 2 番目の画像があるかどうかを判断する必要があります。存在する場合は、関数を機能させるために 2 番目の画像の URL を呼び出す必要があります。

そのためにはphpコードが必要だと思います。

質問のある方からの助けをいただければ幸いです。

よろしく梁

PS:このページについてもう少し詳しく説明します。変数:

<?php
    $_productCollection=$this->getLoadedProductCollection();
    $_helper = $this->helper('catalog/output');
?>

これは、メイン/最初の画像を呼び出すコードです。

    <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(170, 255); ?>" width="170" height="255" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
4

2 に答える 2

2

マジェントの場合

OnMouseOver でイメージを変更し、製品グリッドまたはリスト ビューにデフォルトのサムネイルを表示するには、次のコードをテーマの list.phtml ファイルに追加します。

onmouseover="this.src='<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(135,135) ?>';" 
onmouseout="this.src='<?phpecho $this->helper('catalog/image')->init($_product, 'small_image')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(135,135) ?>';"

新しいコードは次のようになります。

<a href="<?php echo $_product->getProductUrl() ?>"
   title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>"
   class="product-image">
     <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135, 135); ?>"
          width="135" height="135"
          alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>"
          onmouseover="this.src='<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(135,135) ?>';"
          onmouseout="this.src='<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(135,135) ?>';"/>
</a>
于 2012-09-06T08:25:12.933 に答える
0

これは 2 番目の画像を取得できますが、サイズを変更することはできません。

<?php $_productImage = Mage::getModel('catalog/product')->load($_product->getId());foreach ($_productImage->getMediaGalleryImages() as $image) { $_productGallery = $image->getUrl();break;};echo $_productGallery; ?>

幸運を!

于 2013-01-11T02:45:19.007 に答える