如果图像更宽或更高,我如何使Galleria jQuery插件的图像裁剪有所不同?
基本上,我想根据库中每个图像的尺寸更改图像裁剪的变量。如果图像的高度大于要切换到高度裁剪的宽度,则保留宽度裁剪。我正在使用Galleria插件,到目前为止,我有以下代码:如果图像更宽或更高,我如何使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
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();”?此外,加载到图库中的第一幅图像不会受到影响,除非我单击“前进”到下一幅图像,然后单击“后退”,然后它会按应有的方式切换到“横向”。我使用经典主题的事实是否影响了这个问题?代码应该放在主题文件的某个地方吗?谢谢你的帮助,我想你快要解决了。