2017-10-19 2 views
1

Ich bin auf der Suche nach einer Möglichkeit, eine zufällige Position auf meinem HTML div. Ich habe eine Javascript-Funktion geschaffen, die wie folgt aussieht:Erzeugen einer zufälligen Position in einem div mit Javascript

function randomInRange(min, max) { 
    return(Math.floor((Math.random() * (max - min) + 1) + min));  
} 

ich durch Ändern einer beliebigen Position in der div css erzeugen wollte (position: relative; left: 0px; top: 0px) der linken und oberen Attribut zu der zufällig generierten Nummer. Ich kann nicht scheinen, einen maximalen & Minute Wert für die Funktion zu finden, da das div Prozentsätze für die Breiten benutzt.

css des div:

#stage { 
    float: left; 
    background-color: pink; 
    width: 100%; 
    height: 70%; 
} 

die Funktion ausführt, wenn ich eine bestimmte Schaltfläche klicken

var button = document.getElementById("button"); 

button.onclick = function() { 
    shape.style.left = randominrange(0, stage.style.width); 
    shape.style.top = randominrange(0, stage.style.height); 
} 
//the shape is a circle div that shows where the generated point is 

i Javascript gerade begonnen vor ein paar Tagen und kann nicht scheinen, einen Weg zu finden, es zu tun

+0

So ist das Problem ist, dass Sie die Breite des div nicht finden können? –

Antwort

0
var stage = document.getElementById('stage'); 
var stageWidth = stage.offsetWidth; 
var stageHeight = stage.offsetHeight 

Jetzt können Sie stagewidth & stage verwenden für Ihre Funktion aufruft

0

Verwendung clientWidth und clientHeight statt width und height

button.onclick = function() { 
    shape.style.left = randominrange(0, stage.style.clientWidth); 
    shape.style.top = randominrange(0, stage.style.clientHeight); 
} 

hier ist ein Unterschied zwischen clientHeight vs offsetHeight

+0

Danke! Es hat funktioniert, aber die zufällige Position wird oft weiter außerhalb der div und überläuft –

+0

Um zu debuggen, dass ich Ihre Markup sehen muss. – gurvinder372

Verwandte Themen