创建,显示图像作为背景图像一个接一个- JavaScript
Create & Show images as background-image one by one - JavaScript
问题说明 -我需要创建&动态显示多个图像从我的目录一个接一个,与转换-比例(显示)应用到它。但是我的代码会同时显示它们。
HTML:<div class="images-cont">
</div>
CSS: a {
border-radius: 50%;
width: 120px;
height: 160px;
transform: scale(0,0);
transition: all 4s;
background:no-repeat center center;
display:inline-block;
}
a.scale{ transform: scale(1,1);}
JS:
$("document").ready(function(){
var minImages = 1; // Images are numbered from 1.jpg till 10.jpg
var maxImages = 10;
for(i=1;i<=maxImages;i++){
buildImageLink();
}
showImages();
function buildImageLink(){
var anchor = $(document.createElement('a'));
anchor.attr('href','#').appendTo('.images-cont');
loadImage(anchor);
};
function loadImage(elem){
var f = new Image;
var p = 'images/' + i + '.jpg'; // Location of the images directory
f.src = p;
f.addEventListener("load", function() {
elem.css({ 'background-image': 'url('+ p +')'});
});
};
function showImages(){
$('.images-cont a').each(function(){
$(this).delay(1000).addClass('scale')
})
}
});
已经在SO本身经历了一些帖子,并相应地改进了我的代码,但它仍然是一样的。我不明白我错过了什么。延迟是不会发生的
.delay()
不适用于.addClass()
,仅适用于动画队列
你想要的可能是一个setTimeout函数:
function showImages(){
$('.images-cont a').each(function(i, el){ // `i` is Index, `el` is HTMLElement object
setTimeout(function(){
$(el).addClass('scale');
}, i * 1000); // (0*1000=0; 1*1000=1000, 2*1000=2000 etc)
})
}
另外,你可以这样做,而不是var anchor = $(document.createElement('a'));
:
var anchor = $("<a />");
甚至:
var anchor = $("<a />", {href:"#"});
/* and than just: */ anchor.appendTo('.images-cont');
还建议改变顺序:
f.addEventListener("load", function() {
elem.css({ 'background-image': 'url('+ p +')'});
});
f.src = p; // After instantiating the load function
相关文章:
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 如何将多个画布保存为一个图像
- 是否可以仅通过jQuery将图像替换为用户动态选择的另一个图像
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 如何在设定的时间间隔内一次只显示一个图像
- 循环以检查数组中的最后一个图像
- 下载Div&画布为一个图像
- 当页面包含指向一个图像的多个链接时,fancyBox会复制缩略图辅助图像
- 在引导程序旋转木马中显示下一个图像
- 拉斐尔用一个图像填满了这个圆圈
- 将多个重叠的透明图像保存为一个图像
- 我怎么能把它做成这样一个图像就不能拖动了
- 普通JS:使80%宽度元素100%IF包含一个图像
- 当滑块只有一个图像时,如何禁用下一个/上一个按钮
- 如何使用onclick事件点击一个图像,并让它更改同一网页上的另一个图像
- 将多个画布保存为一个图像(使网站像PicFrame一样)
- 在 JavaScript 中将一个.PNG图像拖放到另一个图像上
- 如何在CSS中修复与另一个图像进行比较的图像
- 只有一个图像被绘制到画布上
- 使用 jQuery 在最后一个图像之后附加 HTML