2016-12-17 89 views
0

我期待從下面的腳本中定位一個簡單圖像在DIV中的隨機位置。 雖然圖像確實顯示,但它們都是並排顯示的,而我可以在控制檯上看到隨機位置正在生成。 有什麼提示嗎?Javascript - 將圖像添加到隨機位置的節點

<script type="text/javascript"> 
    function generateFaces(){ 
    var numberOfFaces = 5; 
    var theLeftSide = document.getElementById("leftSide"); 
    while (numberOfFaces > 0) { 
     var random_left = Math.floor(Math.random()*400); 
     var random_top = Math.floor(Math.random()*400); 
     var theImage = document.createElement("img"); 
     theImage.src = "face.png"; 
     theImage.style.top = '"'+random_top+'px"'; 
     console.log("top style: " + '"'+random_top+'px"'); 
     theImage.style.left = '"'+random_left+'px"'; 
     theLeftSide.appendChild(theImage); 
     numberOfFaces--; 
    } 
    } 
</script> 

謝謝!

+0

它看起來像你需要添加一個位置:相對或絕對允許頂部和左側施加檢查[詳細信息](https://developer.mozilla.org/ zh-cn/docs/Web/CSS/position) – happymacarts

+0

Thanks happymacarts – Fanick

回答

1

請嘗試這樣。

您需要設置相對位置並設置樣式。

theImage.style = "top:"+random_top+"px; left:"+random_left+"px; position:relative"; 

您可以在您添加了圖像的風格不是元素上實際應用的開發者控制檯檢查。

#leftSide 
 
{ 
 
    height:400px; 
 
    width:400px; 
 
}
<div id="leftSide"></div> 
 
<script type="text/javascript"> 
 
    function generateFaces(){ 
 
    var numberOfFaces = 5; 
 
    var theLeftSide = document.getElementById("leftSide"); 
 
    while (numberOfFaces > 0) { 
 
     var random_left = Math.floor(Math.random()*400); 
 
     var random_top = Math.floor(Math.random()*400); 
 
     var theImage = document.createElement("img"); 
 
     
 
     theImage.src = "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcR9tLvsasK-kB72yV_zC8hn0qZhHbshQdXLELCXaF1JkWIOuYfUUsuMsw"; 
 
     theImage.style = "top:"+random_top+"px; left:"+random_left+"px; position:relative"; 
 
     theLeftSide.appendChild(theImage); 
 
    
 
     
 
     numberOfFaces--; 
 
    } 
 
    } 
 
    generateFaces(); 
 
</script>

+0

解釋會有幫助,所以OP可以理解你做了什麼而不是「這裏是答案」 – happymacarts

+1

@happymacarts是的,只是編輯答案爲了解釋。 – Deep

+0

完美!很好的答案 – happymacarts