【JavaScript】動く雲っぽいものを表示する
問題
ブラウザで、流れていく雲のアニメーションみたいなのを表示したいです。
答え
領域の大きさ、背景色は、CSSかstyle属性で指定してやってください。IDはskyにした。
HTML
<div id="sky" style="width:100%; height:100px; background-color:#3E83C8;"></div>
cloud1.png と cloud2.png は適当なもこもこした半透明のPNG画像を用意してください。
JavaScript
$(function(){
//中に入る雲を position:absolute するので
$('#sky').css({position:"relative", overflow:"hidden"});
//指定されたURLの画像の雲をskyの中に置く
function addObject(url)
{
var speed = 30000 + Math.floor(Math.random() * 30000);
var top = -100 + Math.floor(Math.random() * 200);
var $div = $("<div>").css({"position":"absolute", "top":top,"left": "-200px"}).animate({
left:$("#sky").width()
},speed,"linear",function(){
$(this).remove();
})
$div.append('<img src="' + url + '">');
$("#sky").append($div);
}
//timer
(function t() {
if ($('#sky div').length > 100) {
setTimeout(t, 500);
} else {
if (Math.random() < 0.20) {
addObject("./cloud1.png");
}
if (Math.random() < 0.10) {
addObject("./cloud2.png");
}
setTimeout(t, 100);
}
})();
});