他のdivのdivの移動を希望します。今、彼らはページ全体を飛んでいる。他のdivに飛んでいるdiv(ページ全体ではない)
このコードを変更するにはどうすればよいですか?
$(document).ready(function() {
$('.balloon').each(animateDiv);
});
function makeNewPosition() {
// Get viewport dimensions (remove the dimension of the div)
var h = $(window).height() - 50;
var w = $(window).width() - 50;
var nh = Math.floor(Math.random() * h);
var nw = Math.floor(Math.random() * w);
return [nh, nw];
}
function animateDiv() {
var el = $(this);
var newq = makeNewPosition();
var oldq = $(el).offset();
var speed = calcSpeed([oldq.top, oldq.left], newq);
$(el).animate({
top: newq[0],
left: newq[1]
}, speed, function() {
animateDiv.apply(this);
});
};
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 = .4;
var speed = Math.ceil(greatest/speedModifier);
return speed;
}
.balloon {
width: 50px;
height: 50px;
background-color: red;
position: fixed;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Create a New Pen</title>
<link rel='stylesheet prefetch' href='http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css'>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class='balloon'></div>
<div class='balloon'></div>
<div class='balloon'></div>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js'></script>
<script src="js/index.js"></script>
</body>
</html>
マリオありがとう! 正常に動作しているようです。しかし、スクロールすると、バルーンがdivから飛び出します。したがって、スクロールしながら表示されます。私は彼らが部門に留まることを願っています。 (うまくいけば私が意味するものを理解する)。 –
あなたは大歓迎です@DonaldRoos!あなたが何を意味するのかを見て、自分のコードを見て、私はフィドルで下にスクロールし、それが動作することを確認する余裕を追加しました。私は、気球についてのCSSを言いたいのは忘れていました。なぜなら、「位置:絶対」のために「位置:固定」を変えなければならないからです。 – MarioZ
ありがとう@MarioZ!これは動作します!クール –