Javascript jQuery使图像在随机位置弹出不工作

Javascript jQuery使图像在随机位置弹出不工作,javascript,jquery,Javascript,Jquery,我想使用jQuery每2秒随机显示一个图像。但图像始终显示在静态位置(左上角)。I console.logged图像的属性,其左侧和顶部显示随机像素 let得分=0; 设id=0; $(文档).ready(函数(){ setInterval(setImage,2000年); }); 函数setImage(){ $(“#容器”)。追加( `` ); $(“#”+id) .slideUp(0) .fadeIn(1000); id++; $(“#”+id)。在(“单击”)上,函数(事件){ $(ev

我想使用jQuery每2秒随机显示一个图像。但图像始终显示在静态位置(左上角)。I console.logged图像的属性,其左侧和顶部显示随机像素

let得分=0;
设id=0;
$(文档).ready(函数(){
setInterval(setImage,2000年);
});
函数setImage(){
$(“#容器”)。追加(
``
);
$(“#”+id)
.slideUp(0)
.fadeIn(1000);
id++;
$(“#”+id)。在(“单击”)上,函数(事件){
$(event.target).remove();
分数++;
log($(event.target).attr(“id”),score);
});
}
函数{
设高度=$(窗口).height();
让randomHeight=Math.floor(Math.random()*(高度-75))+“px”;
返回高度;
}
函数左(){
让宽度=$(窗口).width();
让randomLeft=Math.floor(Math.random()*(宽度-75))+“px”;
向左返回;

}
您需要使用样式而不是左/顶属性

style="left:10px;right:10px"
对您的代码段进行了几个其他调整:

  • include jquery(代码段编辑器左侧的选项将
    添加到html中)
  • 需要一个
    #容器
    来放置它们,我制作了这个
    位置:相对
    ,所以
    位置:绝对
    可以工作
  • 通过链接append,不再需要重新查找
    $(“#”+id)
  • i++
    放在开头,这样您就不会尝试将单击附加到尚不存在的内容上(但不用于重新查找新元素)
  • $(this).remove()
    必须在
    $(this).attr(“id”)
    之后-您在获取其id之前已将其删除
  • 在单击处理程序中使用
    ,而不是在event.target中使用
  • 最好使用
    数据id=${++id}
    而不是使用数字id,但这是一个小改动(未进行)
更新的代码段:

let得分=0;
设id=0;
$(文档).ready(函数(){
setInterval(setImage,2000年);
});
函数setImage(){
var img=$(``);
如图所示,附于(“容器”)
.slideUp(0)
法丹先生(1000)
.on(“单击”,函数(){
分数++;
log($(this.attr(“id”),分数);
$(this.remove();
});
}
函数{
设高度=$(窗口).height();
让randomHeight=Math.floor(Math.random()*(高度-75))+“px”;
返回高度;
}
函数左(){
让宽度=$(窗口).width();
让randomLeft=Math.floor(Math.random()*(宽度-75))+“px”;
向左返回;
}
#容器{
位置:相对位置;
身高:100%;
宽度:100%;
}
.病毒{
边框:1px纯红;
位置:绝对位置;
宽度:75px;
高度:20px;
显示:块;
}


它的z指数是多少?新图像是在旧图像的后面而不是在上面滑动吗?@CriticalError我想在web应用程序中实现它,但我发现图像在主页后面。非常感谢。我能再问一个问题吗?我将setInterval()放入setTimeout(),我想在分数达到5时停止setInterval。我试图将其分配给一个变量,但它总是立即触发。我应该如何处理这个问题?你应该问一个新问题。但从本质上讲,您确实需要
var timerId=setInterval(…)然后
清除间隔(timerId)