我有一个图片占位符,希望从HTML中加载第一张大于70像素宽度或高度的图片到一个DIV
元素中。然后提供“下一张”和“上一张”链接以加载下一张大于70像素的图片。
我知道jQuery有“下一个”和“上一个”选择器,但我不确定如何将其与下一个和上一个链接结合起来,或者如何指定图像大小。
我有一个图片占位符,希望从HTML中加载第一张大于70像素宽度或高度的图片到一个DIV
元素中。然后提供“下一张”和“上一张”链接以加载下一张大于70像素的图片。
我知道jQuery有“下一个”和“上一个”选择器,但我不确定如何将其与下一个和上一个链接结合起来,或者如何指定图像大小。
要获取所有尺寸大于某个大小的图像,您可以使用以下内容:
var allImages = $('img', yourDivElement)
var largeImages = allImages.filter(function(){
return ($(this).width() > 70) || ($(this).height() > 70)
})
获取下一个/上一个并不困难:
var nextElement = $(imgElement).nextAll().filter(function(){
return ($(this).width() > 70) || ($(this).height() > 70)
}).eq(0);
如果你有很多图片,先前的示例可能过于复杂,因此你可能想要通过循环来处理它们:
var nextElement, nextSilblings = $(imgElement).nextAll();
for (var i=0;i<nextSilblings.length;i++){
if (($(nextSilblings[i]).width() > 70) || ($(nextSilblings[i]).height() > 70)){
nextElement = nextSilblings[i];
break;
}
}
请分两步完成:
1)标记符合条件的图片
$('#targetDiv img').each(function() {
if($(this).height()>70) {
$(this).addClass('biggie')
}
})
2)连接导航
var myPos = 0;
$('#btnNext').click(function() {
//copy this image to the placeholder
$('#placeholder').attr('src', $('#targetDiv .biggie').eq(myPos).attr('src'));
myPos++;
if(myPos>$('#targetDiv .biggie').length) {
myPos = 0;
}
})
执行保存前一个按钮的操作,除了递减并更改零逻辑。