【问题标题】:Woocommerce - How can I achieve a greyed-out overlay affect on thumbnails?Woocommerce - 如何在缩略图上实现灰色叠加效果?
【发布时间】:2016-07-25 09:48:20
【问题描述】:

我正在使用产品构建一个 Wordpress/Woocommerce 主题。当产品缺货时,我使用以下代码编写了一个 p 标签,在产品缩略图下方显示“缺货”:

function envy_stock_catalog() {
    global $product;
    if ( $product->is_in_stock() ) {
            return;
        } else {
        echo '<div class="out-of-stock" >' . __( 'out of stock', 'envy' ) . '</div>';
                add_action('init','remove_loop_button');
    }
}
add_action( 'woocommerce_after_shop_loop_item_title', 'envy_stock_catalog' );

我还希望产品缩略图具有灰色效果。产品图片仍然可见,但有一个灰色的透明覆盖层。 有谁知道我怎么能做到这一点?欢迎所有建议,并在此先感谢您!

【问题讨论】:

    标签: php css wordpress woocommerce


    【解决方案1】:

    我假设您的代码会是这样的:

    <div class="product">
        <img src="http://academy.bindtuning.com/wp-content/uploads/2014/04/wplogoblue-notext-rgb.png" height="300" width="300" />
        <p class="out-of-stock">Out of Stock</p>
    </div>
    

    注意:我使用 jQuery 在 img 之前添加了一个新的 &lt;div class='img-overlay'&gt;&lt;/div&gt;,因为旧版浏览器不完全支持 CSS 伪选择器

    $(document).ready(function(e){
      
    // Adding a new <div> img-overlay before img present inside product
      
    $("<div class='img-overlay'></div>").insertBefore(".product img");
    });
    .product{
      position:relative;
      width:300px; /* Setting this property is mandatory since .img-overlay inherits width from here */
      height:300px; /* Setting this property is mandatory since .img-overlay inherits height from here */
    }
    
    .out-of-stock{
      width:100%;
      text-align:center;
      background:#fff;
      color:#373737;
      padding:5px;
      font-size:13px;
      text-transform:uppercase;
      position:absolute;
      z-index:100; /* Used it to push .out-of-stock above .img-overlay*/
    }
    
    .product .img-overlay{
      position:absolute;
      top:0;
      left:0;
      background:rgba(90,90,90,0.5); /* Play with 0.5 to set the transparency of overlay div*/
      height:100%;
      width:100%;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="product">
     <img src="http://academy.bindtuning.com/wp-content/uploads/2014/04/wplogoblue-notext-rgb.png" height="300" width="300" />
    <p class="out-of-stock">
    Out of Stock
    </p>
    </div>

    希望对你有帮助

    【讨论】:

    • 这看起来很棒!可以等一试。我可以确认我应该将代码添加到哪些文件吗?函数.php?我知道 CSS 在我的样式表中,但我不是 100% 使用 jQuery 和 HTML
    • 您需要了解这一点才能实现它或发布您的 HTML 标记,以便我可以根据此更新答案。
    • 我不明白...我在问文件名
    • 我是说这些 CSS 类和 HTML 标记只是一个例子。复制粘贴这在您的网站上不起作用,因此您需要了解工作并实施它,或者您需要使用自己的 HTML 和 CSS 代码更新问题,以便我可以根据此更新我的答案。
    【解决方案2】:

    请将以下 css 添加到您主题的 custom.css 文件中

    .woocommerce span.soldout, .woocommerce-page span.soldout {
        //Add overlay image url or effect
    }
    

    【讨论】:

    • 非常感谢,但我是缩略图上的灰色叠加层,而不是 p 标签。
    • 您可以检查您的 html 标签并执行此操作 .out-of-stock img {add overaly image url}
    • 这是woocommerce产品,所以有很多
    • 我理解您的想法,但这是在 woo commerce 样式或主题样式中使用 CSS 的最简单方法,它不取决于您拥有多少产品。请尝试这个并告诉我这是否有任何问题告诉我,我会给你另一个解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    相关资源
    最近更新 更多