如果图像更宽或更高,我如何使Galleria jQuery插件的图像裁剪有所不同?

如果图像更宽或更高,我如何使Galleria jQuery插件的图像裁剪有所不同?,jquery,jquery-plugins,gallery,image-gallery,galleria,Jquery,Jquery Plugins,Gallery,Image Gallery,Galleria,基本上,我想根据库中每个图像的尺寸更改图像裁剪的变量。如果图像的高度大于要切换到高度裁剪的宽度,则保留宽度裁剪。我正在使用Galleria插件,到目前为止,我有以下代码: if ($(image).width() > $(image).height()){ var upordown = "width" } else { var upordown = "height" } 变量的名称位于此处,是Galleria选项列表的一部分: image_crop : upordo

基本上,我想根据库中每个图像的尺寸更改图像裁剪的变量。如果图像的高度大于要切换到高度裁剪的宽度,则保留宽度裁剪。我正在使用Galleria插件,到目前为止,我有以下代码:

if ($(image).width() > $(image).height()){  
var upordown = "width"
} else {        
var upordown = "height"
}
变量的名称位于此处,是Galleria选项列表的一部分:

 image_crop : upordown,

任何帮助都将不胜感激。

您是否正在寻找一种方法,使图像始终适合容器内部,而不进行裁剪?尝试将
image\u-crop
(或最新版本的
imageCrop
)设置为
false

编辑:您可以收听
loadfinish
事件,并根据图像尺寸动态设置选项。您需要调用
refreshImage
以应用更改

$('#galleria').galleria({
    extend: function() {
        var gallery = this,
            landscape;
        this.bind('loadfinish', function(e) {
            landscape = e.imageTarget.width >= e.imageTarget.height 
                ? 'width' : 'height';
            gallery.setOptions( 'imageCrop', landscape ).refreshImage();
        });
    }
});

以大卫为例,我觉得这是最好的选择。这并不是很顺利,但它有助于解决李廷德尔所说的问题

this.bind('image', function(e) {
    var imageW = e.imageTarget.width;
    var imageH = e.imageTarget.height;

    if (imageH > imageW) {
        landscape = 'height';
    } else if (imageH < imageW) {
        landscape = true;
    }

    this.setOptions({ imageCrop: landscape }).refreshImage();
});
this.bind('image',函数(e){
var imageW=e.imageTarget.width;
var imageH=e.imageTarget.height;
如果(imageH>imageW){
景观=‘高度’;
}else if(imageH
这并不能真正解决问题,它只适合容器内的图像,而不需要裁剪。我希望裁剪选择根据图像的不同而有所不同。如果图像为纵向,则无裁剪或“高度”裁剪,如果图像为横向,则将裁剪设置为true或“宽度”裁剪。谢谢你的帮助。希望有人能想出一个if语句来实现这一点。有趣的是,如果我将“imageCrop”的默认值设置为“height”,然后插入代码,它会将“imageCrop”切换为“width”,而不是只对横向图像执行此操作,而是对所有图像执行此操作。是否还有其他地方需要放置“refreshImage();”?此外,加载到图库中的第一幅图像不会受到影响,除非我单击“前进”到下一幅图像,然后单击“后退”,然后它会按应有的方式切换到“横向”。我使用经典主题的事实是否影响了这个问题?代码应该放在主题文件的某个地方吗?谢谢你的帮助,我想你快要解决了。