2015-08-08 36 views
-1

我追加一个div到的fancybox来显示的fancybox画廊的fancybox水印probleme图像尺寸

<script> 
$(".fancybox2").fancybox({ 
    beforeShow: function() { 
     /* Add watermark to gallery elements only */ 
     if (this.group.length > 1) { 
      $('<div class="watermarker"></div>') 
       .bind("", function (e) { 
       return false; /* Disables right click */ 
      }).prependTo($.fancybox.inner); 
     } 
    } 
}); 

</script> 

水印我怎么能只在div追加到的fancybox如果图像大小比X大?

在此先感谢。

回答

0

你只需要标准添加到if语句,如:

if (this.group.length > 1 && this.width > x && this.height > y) 

完整的代码(比你的略有不同)

jQuery(document).ready(function ($) { 
    $(".fancybox2").fancybox({ 
     beforeShow: function() { 
      /* Add watermark to gallery elements only */ 
      if (this.group.length > 1 && this.width > 800) { 
       $.fancybox.wrap.bind("contextmenu", function (e) { 
        return false; 
       }); 
       $('<div />', { 
        "class": "watermarker", 
        style: "width:" + this.width + "px; height:" + this.height + "px;" 
       }).prependTo($.fancybox.inner); 
      } 
     } 
    }); 
}); // ready 

通知的contextmenu势必到的fancybox wrap而不是watermark因为右击可以实现徘徊图库导航箭头。如果您想要限制右键单击所有图像(包括图库外的图像),请从if声明中取出.bind()方法。

还要注意我动态设置widthwatermarkheight相同大小的的fancybox 盒子,但我可以用CSS规则设置其属性的其余部分。

最后,注意应用引号,因为类被声明为保留的JavaScript关键字。

参见JSFIDDLE 在演示中,只有第二图像(比“X”宽)将具有一个水印