Допустим, у вас есть этот HTML:
<div id="test">test div</div>
А это CSS:
#test {
position:absolute;
width:100px;
height:70px;
background-color:#d2fcd9;
}
Используя jQuery, если вы используете этот скрипт, всякий раз, когда вы нажимаете div, он будет располагаться произвольно в документе:
$('#test').click(function() {
var docHeight = $(document).height(),
docWidth = $(document).width(),
$div = $('#test'),
divWidth = $div.width(),
divHeight = $div.height(),
heightMax = docHeight - divHeight,
widthMax = docWidth - divWidth;
$div.css({
left: Math.floor( Math.random() * widthMax ),
top: Math.floor( Math.random() * heightMax )
});
});
Это работает так: сначала вы вычисляете ширину и высоту document
, затем вычисляете ширину и высоту div
и затем вычитаете ширину div
из ширины document
и div
высота от document
высоты и учтите, что диапазон пикселей, в который вы готовы поместить div
(чтобы он не выходил за пределы документа). Если у вас есть отступы и границы на div
, вам также необходимо учитывать эти значения. Как только вы определили диапазон, вы можете легко умножить его на Math.random()
и найти случайную позицию вашего div
.
Итак, еще раз: сначала найдите размеры контейнера, затем найдите размеры вашего элемента, затем вычтите размеры элемента из размеров контейнера, а затем используйте Math.random()
для этого значения.
Основная идея заключена здесь:
http://jsfiddle.net/5mvKE/