이미지를 보면 마치 눈이 오는듯 무언가 내리는 모습을 볼 수 있습니다.
눈 내리는 모습을 홈페이지에 입히고 싶을때 간단하게 작업하면 좋을거 같아서 공유 합니다.
참고 주소는 http://peoplehome.co.kr/test2.html
위 주소 들어가서 오른쪽 마우스 소스보기 하셔도 되고,
해당 소스는 아래와 같습니다.
<!DOCTYPE HTML>
<html lang="ko">
<head>
<title>눈 오는 스크립트</title>
</head>
<body>
<script type="text/javascript">
// 눈오는 스크립트
(function ()
{
function k(a, b, c)
{
if (a.addEventListener) {
a.addEventListener(b, c, false);
}
else {
a.attachEvent && a.attachEvent("on" + b, c);
}
}
function g(a)
{
if (typeof window.onload != "function")
{
window.onload = a;
}
else {
var b = window.onload;
window.onload = function ()
{
b();
a()
}
}
}
function h()
{
var a = {};
for (type in {
Top : "", Left : ""
})
{
var b = type == "Top" ? "Y" : "X";
if (typeof window["page" + b + "Offset"] != "undefined") {
a[type.toLowerCase()] = window["page" + b + "Offset"];
}
else
{
b = document.documentElement.clientHeight ? document.documentElement : document.body;
a[type.toLowerCase()] = b["scroll" + type];
}
}
return a
}
function l()
{
var a = document.body, b;
if (window.innerHeight) {
b = window.innerHeight;
}
else if (a.parentElement.clientHeight) {
b = a.parentElement.clientHeight;
}
else if (a && a.clientHeight) {
b = a.clientHeight;
}
return b
}
function i(a)
{
this.parent = document.body;
this.createEl(this.parent, a);
this.size = Math.random() * 4 + 4;
this.el.style.width = Math.round(this.size) + "px";
this.el.style.height = Math.round(this.size) + "px";
this.maxLeft = document.body.offsetWidth - this.size;
this.maxTop = document.body.offsetHeight - this.size;
this.left = Math.random() * this.maxLeft;
this.top = h().top + 1;
this.angle = 1.4 + 0.2 * Math.random();
this.minAngle = 1.4;
this.maxAngle = 1.6;
this.angleDelta = 0.01 * Math.random();
this.speed = 4 + Math.random()
}
var j = false;
g(function ()
{
j = true;
});
var f = true;
window.createSnow = function (a, b)
{
if (j)
{
var c = [], m = setInterval(function ()
{
f && b > c.length && Math.random() < b * 0.0025 && c.push(new i(a));
!f && !c.length && clearInterval(m);
for (var e = h().top, n = l(), d = c.length - 1; d >= 0; d--) if (c[d]) if (c[d].top < e || c[d].top + c[d].size + 1 > e + n) {
c[d].remove();
c[d] = null;
c.splice(d, 1)
}
else {
c[d].move();
c[d].draw()
}
}, 40);
k(window, "scroll", function ()
{
for (var e = c.length - 1; e >= 0; e--) {
c[e].draw();
}
})
}
else {
g(function ()
{
createSnow(a, b)
});
}
};
window.removeSnow = function ()
{
f = false;
};
i.prototype =
{
createEl : function (a, b)
{
this.el = document.createElement("img");
this.el.setAttribute("src", b + "./images/snow" + Math.floor(Math.random() * 4) + ".gif");
this.el.style.position = "absolute";
this.el.style.display = "block";
this.el.style.zIndex = "99999";
this.parent.appendChild(this.el)
},
move : function ()
{
if (this.angle < this.minAngle || this.angle > this.maxAngle) {
this.angleDelta =- this.angleDelta;
}
this.angle += this.angleDelta;
this.left += this.speed * Math.cos(this.angle * Math.PI);
this.top -= this.speed * Math.sin(this.angle * Math.PI);
if (this.left < 0) {
this.left = this.maxLeft;
}
else if (this.left > this.maxLeft) {
this.left = 0;
}
},
draw : function ()
{
this.el.style.top = Math.round(this.top) + "px";
this.el.style.left = Math.round(this.left) + "px";
},
remove : function ()
{
this.parent.removeChild(this.el);
this.parent = this.el = null;
}
}
})
();
</script>
<script>
// 눈오는 스크립트
createSnow('./', 2000);
//------------ ./는 이미지 경로, 1000는 눈 갯수(숫자가 크면 클수록 폭설이 내립니다.)
</script>
<div style="height:1000px;width:100%; background:#000"></div>
</body>
</html>
'홈페이지제작' 카테고리의 다른 글
php 마지막 문자 자르기 (0) | 2023.11.30 |
---|---|
숫자만 입력하는 스크립트 (0) | 2023.03.16 |
css 글자 애니메이션 효과주기 1선 (0) | 2022.11.30 |
청주 홈페이지 제작 - 오즈컨츄리 (0) | 2022.11.18 |
jQuery 체크박스에 전체 체크하기 (0) | 2022.11.04 |