Math.random无法正常工作

时间:2014-03-02 15:59:13

标签: javascript

我无法生成将X放在框内随机位置的值。知道什么是错的吗?

   var putAnXBtn = document.getElementById("putAnXButton");
putAnXBtn.onclick = function(){

        var theBox = document.getElementById("putAnX");

        // width and height of the box 
        var width = theBox.clientWidth;
        var height = theBox.clientHeight;


        var yPosition = Math.random()* width; // Not able to generate a value between 0 and the height
        var xPosition = Math.random()* height;  //Not able to generate a value between 0 and the width


      var theXElement = document.getElementById("theX");
        theXElement.innerHTML="X";
        theXElement.style.top = parseInt(yPosition)+'px';
        theXElement.style.left = parseInt(xPosition)+'px';

 }

1 个答案:

答案 0 :(得分:0)

我建议使用

Math.floor(Math.Random() * width)
Math.floor(Math.Random() * height)

另外,在生成随机位置时,您的heightwidth会被反转。

改变这个:

var yPosition = Math.random() * width;
var xPosition = Math.random() * height;

到此:

var yPosition = Math.floor(Math.random() * height);
var xPosition = Math.floor(Math.random() * width);

否则X可以在容器边界之外创建。

FIDDLE http://jsfiddle.net/9t46F/