代码:
function showLetter() {
setInterval(function() {
var letter = imgsArray[random()];
var top = random();
var left = random();
$("div").append("<img src='imgs/" + letter + ".png'>");
$("div").last().css({"position": "absolute", "top": top + "px", "left": left + "px"});
}, 1000);
}
在数组imgsArray
的每个位置,我都有一个图像的名称。
我想做什么: 每1000毫秒添加一个图像,在屏幕上给它一个随机位置。 (如果可以防止重叠,那就太好了,但我认为这已经得到了回答)。
它的作用: 每1000毫秒,它会添加一个字母的新图像,并为所有图像提供相同的属性,以便它们最终水平对齐:)
我真的不明白为什么会这样。使用$("div").last().css()
,我是不是选择添加到div的最后一张图片并更改 其属性?
提前致谢。
答案 0 :(得分:2)
$("div").last()
为您提供`$("div")
jquery对象中的最后一项。该jQuery对象中没有图像。
也许你想要的是:
$("div img").last()
但是,这是非常低效的。如果您只想对新创建的图像对象进行操作,则可以直接对其进行操作:
function showLetter() {
setInterval(function() {
var letter = imgsArray[random()];
var top = random();
var left = random();
var img = $("<img src='imgs/" + letter + ".png'>");
img.css({"position": "absolute", "top": top + "px", "left": left + "px"});
$("div").append(img);
}, 1000);
}
答案 1 :(得分:1)
你可能想要考虑这样的事情:
var div = $('<div/>').css({position:'absolute'....}).appendTo('body');
var img = $('<img/>', {src:'imgs/' + letter + '.png'}).appendTo(div);
这将添加新的&lt; div&gt;包含图像到&lt; body&gt;。