Diễn Đàn » Hướng Dẫn Lập trình

Tạo một trận tuyết rơi bằng JavaScript

0 trả lời, 342 lượt xem — Trang 1 / 1
Bạn thấy tuyết rơi bao giờ chưa, có lẽ là rồi nhưng chỉ ở trên TV thôi. Thời tiết Việt Nam sắp chuyển sang mùa đông rồi, và nếu bạn muốn trang hoàng lại trang web của bạn bằng một trận tuyết rơi thì hãy tham khảo đoạn mã sau bằng JavaScript

Các bạn hãy nhúng đoạn Java Script bên dưới vào trang web của bạn đồng thời kết hợp với 1 image. Mức độ tương thích trình duyệt rất tốt, nó có thể tương thích với cả 2 trình duyệt Internet Explorer & Netscape Navigator. Bạn hãy copy đoạn Java Script dán vào Notepad sau đó lưu lại thành file có đuôi .htm hoặc .html.

Các bạn lưu ý: Khi tạo 1 image này các bạn cần tạo image này càng nhẹ nhàng chừng nào thì bông tuyết gơi càng nhẹ nhàng và uyển chuyển chừng đó, image này phải đạt mức độ trong suốt, kích thước bức ảnh càng nhỏ thì càng đỡ phải che mất chữ của bạn.

<html>
<head>
<title>Hieu Ung JavaScript Tuyet Dang Roi</title>
</head>
<body>
<center>
<script LANGUAGE="JavaScript1.2">

<!-- Begin
var no = 25; // Số tuyết
var speed = 10; // Số càng nhỏ tuyết di chuyển(rơi) càng nhanh
var snowflake = "images/idcs.gif"; // Nơi đây chèn hình bông tuyết
var ns4up = (document.layers) ? 1 : 0; // Bộ duyệt tìm nạp vào
var ie4up = (document.all) ? 1 : 0;
var dx, xp, yp; // tọa độ và những vị trí thay đổi
var am, stx, sty; // Độ rộng và những bước thay đổi
var i, doc_width = 800, doc_height = 600;
if (ns4up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
for (i = 0; i < no; ++ i) {
dx = 0; // những biến đổi toạ độ tập hợp
xp = Math.random()*(doc_width-50); // tập hợp những thay đổi vị trí

yp = Math.random()*doc_height;
am = Math.random()*20; // tập hợp những thay đổi độ rộng
stx = 0.02 + Math.random()/10; // tập hợp những thay đổi bước
sty = 0.7 + Math.random(); //tập hợp những thay đổi bước
if (ns4up) { // những lớp tập hợp
if (i == 0) {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
document.write("top=\"15\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
} else {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
document.write("top=\"15\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
}
} else if (ie4up) {
if (i == 0) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
} else {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
}
}
}
function snowNS() { // hàm Netscape hoạt cảnh chính
for (i = 0; i < no; ++ i) { // vòng lặp cho mỗi điểm
yp += sty;
if (yp > doc_height-50) {
xp = Math.random()*(doc_width-am-30);
yp = 0;
stx = 0.02 + Math.random()/10;
sty = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx += stx;
document.layers["dot"+i].top = yp;
document.layers["dot"+i].left = xp + am*Math.sin(dx);
}
setTimeout("snowNS()", speed);
}
function snowIE() { // hàm IE hoạt cảnh chính
for (i = 0; i < no; ++ i) { // vòng lặp cho mỗi điểm
yp += sty;

if (yp > doc_height-50) {
xp = Math.random()*(doc_width-am-30);
yp = 0;
stx = 0.02 + Math.random()/10;
sty = 0.7 + Math.random();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx += stx;
document.all["dot"+i].style.pixelTop = yp;
document.all["dot"+i].style.pixelLeft = xp + am*Math.sin(dx);
}
setTimeout("snowIE()", speed);
}
if (ns4up) {
snowNS();
} else if (ie4up) {
snowIE();
}
// End -->
</script>
</body>
</html>

<!-- ---------------------------------Kết Thúc---------------------------- -->
Đăng nhập để trả lời
0