【发布时间】:2016-05-01 09:59:06
【问题描述】:
我希望一组 div 在页面加载时随机定位。 div 当前设置为以随机方式在视口中移动,但似乎都加载在左上角。
我目前的方法: (https://jsfiddle.net/j2PAb/634/)
$(document).ready(function() {
animateDiv($('.a'));
animateDiv($('.b'));
animateDiv($('.c'));});
function makeNewPosition($container) {
// Get viewport dimensions (remove the dimension of the div)
var h = $container.height() - 50;
var w = $container.width() - 50;
var nh = Math.floor(Math.random() * h);
var nw = Math.floor(Math.random() * w);
return [nh, nw];}
function animateDiv($target) {
var newq = makeNewPosition($target.parent());
var oldq = $target.offset();
var speed = calcSpeed([oldq.top, oldq.left], newq);
$target.animate({
top: newq[0],
left: newq[1]
}, speed, function() {
animateDiv($target);
});
};
function calcSpeed(prev, next) {
var x = Math.abs(prev[1] - next[1]);
var y = Math.abs(prev[0] - next[0]);
var greatest = x > y ? x : y;
var speedModifier = .1;
var speed = Math.ceil(greatest / speedModifier);
return speed;}
【问题讨论】:
-
这些是
fixed定位元素,您还没有在css中定义它们的初始位置,因此它们的默认位置将是(0,0) -
感谢您的快速回复。是的,我可以通过顶部、左侧、底部、右侧设置不同的起始位置,但是,我希望 div 在页面加载时从完全随机的位置开始。我在css中将定位更改为绝对,但没有成功。
标签: javascript jquery css position positioning