appendChild删除样式

时间:2016-02-15 22:09:58

标签: javascript html css

我尝试使用appendChild函数来创建具有某些样式属性的新图像节点。使用它之后,所有属性都会消失。这些图像应该随机定位在leftSide div上,但实际上,它们会排成一行。

<html>
  <head>
    <title>Matching Game</title>
    <style>
        #rightSide {
            position: absolute;
            left: 700px;
            border-left: 1px solid black;
            width:700px; 
            height:700px;
        }

        #leftSide {
            width:700px; 
            height:700px;
            position: absolute;

        }

    </style>
</head>



<body onload="generateFaces()">
    <h1>Matching Game</h1>
    <p>Click on the extra smiling face on the left</p>

    <div id='leftSide'>

    </div>

    <div id='rightSide'>

    </div>

    <script>
        var numberOfFaces = 5;
        var theLeftSide = document.getElementById('leftSide');


        var generateFaces = function() {
            for(var i = 0; i < numberOfFaces; i++)
                {
                  var img = document.createElement('img');
                    img.src = 'smile.png';
                    img.style.top =  Math.floor(Math.random()*600);
                    img.style.left = Math.floor(Math.random()*600);
                    theLeftSide.appendChild(img);
                }
        }
    </script>
</body>


</html>

http://i.stack.imgur.com/fZaYA.png

2 个答案:

答案 0 :(得分:2)

Math.floor(Math.random()*600);将返回一个数字。除非值为0,否则CSS lefttop属性需要长度。长度有单位。

此外,您尚未将position媒体资源从[{1}}更改为static,因此lefttop媒体资源无效,因为它们仅适用于定位元素。

答案 1 :(得分:1)

应该解决你的问题。

var img = document.createElement('img');
img.style.top =  Math.floor(Math.random()*600) + 'px';