php - Magento中调用第二个图片URL实现鼠标悬停换图功能

标签 php css magento mouseover

目标:在 Magento 的类别 GridView 中实现鼠标悬停操作时产品图片的自动更改。

我首先要道歉,我不是编码员,所以请原谅我的愚蠢问题。

我想出了下面的代码来实现换图功能:

<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>

但是,我需要先判断产品是否有第二张图片,如果有,我需要调出第二张图片的 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>

最佳答案

对于Magento

要让 OnMouseOver 更改图像并在产品网格或 ListView 中显示默认缩略图,请将以下代码添加到主题的 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>

关于php - Magento中调用第二个图片URL实现鼠标悬停换图功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11691898/

相关文章:

php - 从 URL 上传内容

php - MySQL Select 语句 Where table1.id != table2.id

javascript - 在输入数字字段上显示前导零

css - 为每个类别标题添加 CSS - magento

forms - Magento 1.9 block 缓存 - 防止 Mage Catalog block 产品 View 上的表单键缓存

php - 自定义电话验证器不工作 symfony

javascript - 如何在不刷新页面的情况下更改路由和内容? (机器人友好)

html - IE、Firefox 和 Edge 的 CSS Bug

html - bootstrap 4 是否有内置的水平分隔线?

magento - 在 Magento 中编辑模板布局