• Kiến thức
  • Network
  • Security
  • Software
  • Thủ thuật
  • Tin học văn phòng
  • Tin tức
  • Mail ảo tạm thời miễn phí
  • Tools tra cứu thông tin
  • Công cụ đổi số thành chữ
AnonyViet
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
AnonyViet
No Result
View All Result

Code tạo Pháo Hoa dùng HTML 5 và Javascript

AnonyViet by AnonyViet
29/01/2016 - Updated on 02/02/2016
in Code
A A
15

Hôm nay mình sẽ đem đến cho các bạn thêm một ít kiến thức về sử dụng HTML5 và Javascript . Hôm nay mình sẽ hướng dẫn cho các bạn cách làm hiệu ứng bắn pháo hoa rất đẹp mắt để trang trí Website cho bạn vào ngày tết, đặc biệt khi click chuột sẽ có hiệu ứng đi kèm. Qua bài viết này, hi vọng các bạn sẽ nắm thêm 1 phần kiến thức về HTML5 Canvas.

📢 Tham gia kênh Telegram của AnonyViet
👉 Vào Telegram AnonyViet
Cập nhật bài mới, tools hay và thủ thuật IT nhanh nhất

Bạn có thể xem trước bản Demo tại đây

Các bài viết liên quan

cách nhận gói Booster trị giá 100$ trên Rocket

Nhận gói 100$ trên Rocket để Vide Coding – Tạo Website bằng AI

14/03/2026
lovable pro 3 thang code

Cách nhận Lovable Pro 3 tháng miễn phí – Tạo Website bằng AI

29/12/2025
cdoe tuyet trang trang tri website

Chia sẻ Code tuyết rơi cho Website đón Giáng Sinh

16/12/2025
Cách Active Key Sublime Text 4 - Tải Sublime Text 4 Full Key 2

Cách Active Key Sublime Text 4 – Tải Sublime Text 4 Full Key

23/05/2025 - Updated on 25/07/2025

     Các bạn tạo ra 3 file: index.html, style.css, script.js theo nội dung bên dưới, lưu vào cùng thư mục. Hoặc đơn giản tải file này xuống đã có sẵn code.

canvas-fireworks-tutorial

Bước 1: Tạo 1 file index.html với nội dung

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Tạo hiệu ứng bắn pháo hoa bằng HTML5 và Javascript</title>
<link rel="icon" href="https://anonyviet.com/resource/phaohoa2/favicon.ico" type="image/x-ico"/>

<link href="style.css" rel="stylesheet" />

</head>
<body>

<div id="info">
	<p style="color:#e1e1b8;" ><b>Tạo hiệu ứng bắn pháo hoa bằng HTML5 và Javascript</b></p>
	<p>Hãy thử tìm hiểu và áp dụng ngay cho website của mình để cùng chào đón tết nguyên đán nha các bạn. <a href="https://anonyviet.com/code-tao-phao-hoa-dung-html-5-va-javascript/">Xem Cách Làm</a>.</p>
</div>

<canvas id="canvas">Canvas không hổ trợ trình duyệt của bạn.</canvas>
<script type="text/javascript" src="script.js"> </script>
</body>
</html>

Bước 2: Tạo 1 file CSS đặt tên là style.css với  nội dung:

#info {
	background:#333;
	opacity:0.8;
	position: absolute;
	top:5px;
	right:5px;
	width:280px;
	color:#fff;
	border-radius: 5px;
	z-index:10
	
}

#info p {
   padding:0 10px;
}

#info a{ color:#f2ea0a; }

/* basic styles for black background and crosshair cursor */
body {
	background: #000;
	margin: 0;
}

canvas {
	cursor: crosshair;
	display: block;
}

Bước 3: Tạo file script.js với nội dung (Đây là file quan trọng tạo ra pháo hoa)

// when animating on canvas, it is best to use requestAnimationFrame instead of setTimeout or setInterval
// not supported in all browsers though and sometimes needs a prefix, so we need a shim
window.requestAnimFrame = ( function() {
	return window.requestAnimationFrame ||
				window.webkitRequestAnimationFrame ||
				window.mozRequestAnimationFrame ||
				function( callback ) {
					window.setTimeout( callback, 1000 / 60 );
				};
})();

// now we will setup our basic variables for the demo
var canvas = document.getElementById( 'canvas' ),
		ctx = canvas.getContext( '2d' ),
		// full screen dimensions
		cw = window.innerWidth,
		ch = window.innerHeight,
		// firework collection
		fireworks = [],
		// particle collection
		particles = [],
		// starting hue
		hue = 120,
		// when launching fireworks with a click, too many get launched at once without a limiter, one launch per 5 loop ticks
		limiterTotal = 5,
		limiterTick = 0,
		// this will time the auto launches of fireworks, one launch per 80 loop ticks
		timerTotal = 80,
		timerTick = 0,
		mousedown = false,
		// mouse x coordinate,
		mx,
		// mouse y coordinate
		my;
		
// set canvas dimensions
canvas.width = cw;
canvas.height = ch;

// now we are going to setup our function placeholders for the entire demo

// get a random number within a range
function random( min, max ) {
	return Math.random() * ( max - min ) + min;
}

// calculate the distance between two points
function calculateDistance( p1x, p1y, p2x, p2y ) {
	var xDistance = p1x - p2x,
			yDistance = p1y - p2y;
	return Math.sqrt( Math.pow( xDistance, 2 ) + Math.pow( yDistance, 2 ) );
}

// create firework
function Firework( sx, sy, tx, ty ) {
	// actual coordinates
	this.x = sx;
	this.y = sy;
	// starting coordinates
	this.sx = sx;
	this.sy = sy;
	// target coordinates
	this.tx = tx;
	this.ty = ty;
	// distance from starting point to target
	this.distanceToTarget = calculateDistance( sx, sy, tx, ty );
	this.distanceTraveled = 0;
	// track the past coordinates of each firework to create a trail effect, increase the coordinate count to create more prominent trails
	this.coordinates = [];
	this.coordinateCount = 3;
	// populate initial coordinate collection with the current coordinates
	while( this.coordinateCount-- ) {
		this.coordinates.push( [ this.x, this.y ] );
	}
	this.angle = Math.atan2( ty - sy, tx - sx );
	this.speed = 2;
	this.acceleration = 1.05;
	this.brightness = random( 50, 70 );
	// circle target indicator radius
	this.targetRadius = 1;
}

// update firework
Firework.prototype.update = function( index ) {
	// remove last item in coordinates array
	this.coordinates.pop();
	// add current coordinates to the start of the array
	this.coordinates.unshift( [ this.x, this.y ] );
	
	// cycle the circle target indicator radius
	if( this.targetRadius < 8 ) {
		this.targetRadius += 0.3;
	} else {
		this.targetRadius = 1;
	}
	
	// speed up the firework
	this.speed *= this.acceleration;
	
	// get the current velocities based on angle and speed
	var vx = Math.cos( this.angle ) * this.speed,
			vy = Math.sin( this.angle ) * this.speed;
	// how far will the firework have traveled with velocities applied?
	this.distanceTraveled = calculateDistance( this.sx, this.sy, this.x + vx, this.y + vy );
	
	// if the distance traveled, including velocities, is greater than the initial distance to the target, then the target has been reached
	if( this.distanceTraveled >= this.distanceToTarget ) {
		createParticles( this.tx, this.ty );
		// remove the firework, use the index passed into the update function to determine which to remove
		fireworks.splice( index, 1 );
	} else {
		// target not reached, keep traveling
		this.x += vx;
		this.y += vy;
	}
}

// draw firework
Firework.prototype.draw = function() {
	ctx.beginPath();
	// move to the last tracked coordinate in the set, then draw a line to the current x and y
	ctx.moveTo( this.coordinates[ this.coordinates.length - 1][ 0 ], this.coordinates[ this.coordinates.length - 1][ 1 ] );
	ctx.lineTo( this.x, this.y );
	ctx.strokeStyle = 'hsl(' + hue + ', 100%, ' + this.brightness + '%)';
	ctx.stroke();
	
	ctx.beginPath();
	// draw the target for this firework with a pulsing circle
	ctx.arc( this.tx, this.ty, this.targetRadius, 0, Math.PI * 2 );
	ctx.stroke();
}

// create particle
function Particle( x, y ) {
	this.x = x;
	this.y = y;
	// track the past coordinates of each particle to create a trail effect, increase the coordinate count to create more prominent trails
	this.coordinates = [];
	this.coordinateCount = 5;
	while( this.coordinateCount-- ) {
		this.coordinates.push( [ this.x, this.y ] );
	}
	// set a random angle in all possible directions, in radians
	this.angle = random( 0, Math.PI * 2 );
	this.speed = random( 1, 10 );
	// friction will slow the particle down
	this.friction = 0.95;
	// gravity will be applied and pull the particle down
	this.gravity = 1;
	// set the hue to a random number +-20 of the overall hue variable
	this.hue = random( hue - 20, hue + 20 );
	this.brightness = random( 50, 80 );
	this.alpha = 1;
	// set how fast the particle fades out
	this.decay = random( 0.015, 0.03 );
}

// update particle
Particle.prototype.update = function( index ) {
	// remove last item in coordinates array
	this.coordinates.pop();
	// add current coordinates to the start of the array
	this.coordinates.unshift( [ this.x, this.y ] );
	// slow down the particle
	this.speed *= this.friction;
	// apply velocity
	this.x += Math.cos( this.angle ) * this.speed;
	this.y += Math.sin( this.angle ) * this.speed + this.gravity;
	// fade out the particle
	this.alpha -= this.decay;
	
	// remove the particle once the alpha is low enough, based on the passed in index
	if( this.alpha <= this.decay ) {
		particles.splice( index, 1 );
	}
}

// draw particle
Particle.prototype.draw = function() {
	ctx. beginPath();
	// move to the last tracked coordinates in the set, then draw a line to the current x and y
	ctx.moveTo( this.coordinates[ this.coordinates.length - 1 ][ 0 ], this.coordinates[ this.coordinates.length - 1 ][ 1 ] );
	ctx.lineTo( this.x, this.y );
	ctx.strokeStyle = 'hsla(' + this.hue + ', 100%, ' + this.brightness + '%, ' + this.alpha + ')';
	ctx.stroke();
}

// create particle group/explosion
function createParticles( x, y ) {
	// increase the particle count for a bigger explosion, beware of the canvas performance hit with the increased particles though
	var particleCount = 30;
	while( particleCount-- ) {
		particles.push( new Particle( x, y ) );
	}
}

// main demo loop
function loop() {
	// this function will run endlessly with requestAnimationFrame
	requestAnimFrame( loop );
	
	// increase the hue to get different colored fireworks over time
	hue += 0.5;
	
	// normally, clearRect() would be used to clear the canvas
	// we want to create a trailing effect though
	// setting the composite operation to destination-out will allow us to clear the canvas at a specific opacity, rather than wiping it entirely
	ctx.globalCompositeOperation = 'destination-out';
	// decrease the alpha property to create more prominent trails
	ctx.fillStyle = 'rgba(0, 0, 0, 0.5)';
	ctx.fillRect( 0, 0, cw, ch );
	// change the composite operation back to our main mode
	// lighter creates bright highlight points as the fireworks and particles overlap each other
	ctx.globalCompositeOperation = 'lighter';
	
	// loop over each firework, draw it, update it
	var i = fireworks.length;
	while( i-- ) {
		fireworks[ i ].draw();
		fireworks[ i ].update( i );
	}
	
	// loop over each particle, draw it, update it
	var i = particles.length;
	while( i-- ) {
		particles[ i ].draw();
		particles[ i ].update( i );
	}
	
	// launch fireworks automatically to random coordinates, when the mouse isn't down
	if( timerTick >= timerTotal ) {
		if( !mousedown ) {
			// start the firework at the bottom middle of the screen, then set the random target coordinates, the random y coordinates will be set within the range of the top half of the screen
			fireworks.push( new Firework( cw / 2, ch, random( 0, cw ), random( 0, ch / 2 ) ) );
			timerTick = 0;
		}
	} else {
		timerTick++;
	}
	
	// limit the rate at which fireworks get launched when mouse is down
	if( limiterTick >= limiterTotal ) {
		if( mousedown ) {
			// start the firework at the bottom middle of the screen, then set the current mouse coordinates as the target
			fireworks.push( new Firework( cw / 2, ch, mx, my ) );
			limiterTick = 0;
		}
	} else {
		limiterTick++;
	}
}

// mouse event bindings
// update the mouse coordinates on mousemove
canvas.addEventListener( 'mousemove', function( e ) {
	mx = e.pageX - canvas.offsetLeft;
	my = e.pageY - canvas.offsetTop;
});

// toggle mousedown state and prevent canvas from being selected
canvas.addEventListener( 'mousedown', function( e ) {
	e.preventDefault();
	mousedown = true;
});

canvas.addEventListener( 'mouseup', function( e ) {
	e.preventDefault();
	mousedown = false;
});

// once the window loads, we are ready for some fireworks!
window.onload = loop;

Các đoạn script trên, đều có chú thích từng bước cụ thể ở từng phần, nếu bạn muốn chỉnh sửa thêm bơt code có thể đọc chú thích để tham khảo. Điều quan trọng là đoạn script này các bạn phải đặt bên dưới thẻ <body> nhé

Xem thêm:  Nên chọn Python hay .Net để học

 

 

 

Tags: codecssfirehtmljavascriptpháo hoascript
AnonyViet

AnonyViet

20 năm kinh nghiệm trong lĩnh vực Security, các chứng chỉ:OSCP, CCNA, CCNP, CISSP. Kiến thức như một ngọn lửa, càng chia sẽ nó sẽ càng bùng cháy!

Related Posts

cách nhận gói Booster trị giá 100$ trên Rocket
Kiến thức

Nhận gói 100$ trên Rocket để Vide Coding – Tạo Website bằng AI

14/03/2026
lovable pro 3 thang code
Mẹo Vặt Máy Tính

Cách nhận Lovable Pro 3 tháng miễn phí – Tạo Website bằng AI

29/12/2025
cdoe tuyet trang trang tri website
Code

Chia sẻ Code tuyết rơi cho Website đón Giáng Sinh

16/12/2025
Cách Active Key Sublime Text 4 - Tải Sublime Text 4 Full Key 3
Phần mềm máy tính

Cách Active Key Sublime Text 4 – Tải Sublime Text 4 Full Key

23/05/2025 - Updated on 25/07/2025
vibde coding là gì
Kiến thức

Vibe Coding là gì?

14/05/2025 - Updated on 25/07/2025
Hướng dẫn học lập trình miễn phí với Vue School 4
Khóa Học

Hướng dẫn học lập trình miễn phí với Vue School

02/03/2025 - Updated on 25/07/2025
guest

guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

15 Comments
oldest
newest
Inline Feedbacks
View all comments
Danh
Danh
10 years ago

làm sao mới có được ad. em up lên host rồi mà sao có thấy gì đâu :((

Reply
AnonyViet
Author
AnonyViet
10 years ago
Reply to  Danh

em giải nén file download về có 3 file, up 3 file đó lên cùng 1 thư mục trên website là dc

Reply
Danh
Danh
10 years ago
Reply to  AnonyViet

ủa. em làm y chan anh nói lun đó. nhưng ssao không được ta.

Reply
AnonyViet
Author
AnonyViet
10 years ago
Reply to  Danh

của e báo lỗi ntn? chụp màn hình a xem

Reply
Blacknet
Blacknet
8 years ago

Hay lắm ad

Reply
Lâm Trung Tính
Lâm Trung Tính
8 years ago

Chắc đến năm 2018 mới dùng rồi :(((

Reply
Lâm Trung Tính
Lâm Trung Tính
8 years ago

Hẹn gặp lại code này bài này lần nữa..Thanks Ad nhiều nha

Reply
Cường
Cường
8 years ago

thank ad nhieeuflawm năm sau chắc sẽ dùng

Reply
Tuấn Anh
Tuấn Anh
8 years ago

share code bá đạo thật
cái này chắc cũng có dùng trong game tạo hiệu ứng đạn bay

Reply
Tuấn Anh
Tuấn Anh
8 years ago

sao em làm ko đc

Reply
long
long
8 years ago

cái này làm sao để đưa vô blog đc ạ <3

Reply
quý 2003
quý 2003
2 years ago
Reply to  long

đẻ đưa vào blogger thì xóa coppy cái css sang thẻ html tảo thẻ style trong thẻ head rồi dán vào là đc

Reply
NguyenHaSon-2006
NguyenHaSon-2006
8 years ago

thanks ad, thanks ad và thanks ad

Reply
Minh Đức Võ
Minh Đức Võ
5 years ago

Cám ơn Admin em làm được rồi ^^
(Cmt trước em hỏi mà em đã làm được rồi ạ, anh khỏi duyệt cmt đó nhé.)

Reply
Minh Đức Võ
Minh Đức Võ
5 years ago

Admin ơi, giúp em sửa lại phần pháo hoa và nội dung web bị tách biệt ra thành 2 thành phần với ạ ( phiền anh vào web e xem nếu diễn tả ad chưa hiểu @@ ). Em muốn cho nó bắn pháo hoa lên phần nội dung của web luôn chứ không bị tách biệt ra ạ

Reply
wpdiscuz   wpDiscuz

Liên hệ Quảng Cáo

Lien he AnonyViet

Bài viết mới

Cách cài extension nhắc nhở uống nước cho dân văn phòng 2

Cách cài extension nhắc nhở uống nước cho dân văn phòng

by Thanh Kim
17/03/2026
0

Vì sao iPhone và MacBook vẫn là "vũ khí" số 1 của giới công nghệ? 3

Vì sao iPhone và MacBook vẫn là “vũ khí” số 1 của giới công nghệ?

by AnonyViet
16/03/2026
0

Advanced SystemCare 19 Pro

Nhận key Advanced SystemCare 19 Pro miễn phí 6 tháng

by Thanh Kim
16/03/2026
0

cách cài Siri đọc thông báo ứng dụng

Cách cài Siri đọc thông báo ứng dụng trên iPhone 17 cực đơn giản

by Thanh Kim
16/03/2026
0

Giới thiệu

AnonyViet

AnonyViet

Nơi chia sẻ những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

Chúng tôi sẵn sàng đón những ý kiến đóng góp, cũng như bài viết của các bạn gửi đến AnonyViet.

Hãy cùng AnonyViet xây dựng một cộng đồng CNTT lớn mạnh nhất!

Giới thiệu

AnonyViet là Website chia sẻ miễn phí tất cả các kiến thức về công nghệ thông tin. AnonyViet cung cấp mọi giải pháp về mạng máy tính, phần mềm, đồ họa và MMO.

Liên hệ

Email: support[@]anonyviet.com

1409 Hill Street #01-01A
Old Hill Street Police Station
Singapore 179369

 

DMCA.com Protection Status

Bình luận gần đây

  • 45555 trong Sự trỗi dậy của “Người ngoài hành tinh”: Alienware Aurora AC16250 “Vũ khí” tối thượng định hình Gaming năm 2026
  • 45555 trong Cách làm mờ ảnh trên iPhone sau khi chụp cực đơn giản
  • vatuan13 trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • vatuan13 trong Hướng dẫn thiết lập định vị giả trên Zalo
  • AnonyViet trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • hùng lê trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • Kelvin trong Hướng dẫn thi chứng chỉ bảo mật CTIGA miễn phí 100%
  • Minh trong Hướng dẫn kết nối OpenClaw với Whatsapp
  • AnonyViet trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • congdk trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • AnonyViet trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • AnonyViet trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • Tran Minh trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • AnonyViet trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • Kerya Kuznetsov trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • AnonyViet trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • 1234560987 trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • Lim trong Tổng hợp các Website tạo VISA ảo (virtual card) để mua hàng Online
  • Linh trong Cách dùng bot tự động verify để đăng ký ChatGPT K12, Spotify Student,…
  • Thịnh trong Tải và kích hoạt Office 2021 Free với tool OfficeSavior
kết quả xổ số hôm nay U888 33win Ae888 kubet kubet 8kbet 99ok trang chủ sc88 xin88 good88 kubet fm88 kubet thailand vip66 xoso66 https://tp88fun.com/ hello88 qq88 Xoso66 Vip66 hitclub bong99 XOSO66 new882.info Thabet fun88 nhà cái uy tín sunwin sunwin rikvip hitclub sunwin go88 12bet v9bet betvisa betvisa vin777 vin777 ee88 bet88 abc8 c54 https://keonhacai.fund/ sunwin cakhiatv socolive Xoso66 zx88 58win fun88.supply EE88 https://da88.design/ https://fun88.supply/ F8BET80 https://q23win.com/ 32win https://lc88.jpn.com/ u888 8xbet W88 link 58win 58WIN https://bbet88b.com/ OK9 SHBET https://xx88.center/ vswin 789PCOM NHÀ CÁI MMOO TT88COM GO 99 RR88 ABC8 https://nowgoal.ws/ https://tylekeonhacai.me/ https://keonhacai.org.vc/ https://xx88.ac/ xx88.me.uk XN88 NOHU90 AF88 HZ88 https://xx88.asia/ 789f NOHU HITCLUB Sunwin 58WIN MV88 888NEW AZ888 PG99 TD88 12bet v9bet 789p NOHU90 Thabet vip66 7mcn hm88 xoso66 DA88 9BET https://daga.rocks https://c168.info/ LC88 Game WIN678 sv368 SH BET https://jun88sr.com/ GVUI TR88 NOHU90 TG88 Taptap 188bet taptap 188BET Link https://qq88pro.vip/ https://kjcgaming.com https://nohutm.com 6789 789Win https://go8.red/ 23win clubv 7m https://urr88.com/ Mig8 mcw casino hit club game bai tg88 kèo nhà cái 5 9 win Sunwin UU88 nổ hũ uy tín Go88 https://bancadoithuong.codes/ https://danhdeonline.blog/ Xocdia88 https://nhacaiuytin10.uk.com/ https://keonhacai88.tv/ https://keonhacai.loans/ https://gamebaidoithuong.io/ https://keonhacai.kiwi/ 789club sodo casino ok 8386 xx88 V9BET Sun52 https://918xxy.com/ https://go99bet.live/ https://tt88.ae.org/ kjc F168 Nhà cái 789BET keo nha cai 5 SC88 https://lc88.bio/ F168 8us https://www.open8808.com/ c168 fly88 hytw3339 ok9 https://go99.mx/ f168 79king Sunwin nhà cái MB66 Luck8 Alo789 hello88 f168 mb66 MV88 sc88 11uu vn23 8DAY ko66 789win 88CLB kèo nhà cái TẢI SUNWIN Thabet tg88 c168 CM88 nạp tiền qq88 8kbet Lode88 game bài game nổ hũ tỷ lệ nhà cái sun win gavangtv colatv truc tiep bong da trực tiếp bóng rổ thapcamtv iwin SH BET https://www.78wind.love/ SODO luck8 tr88 cm88 https://kjcgaming.com/ https://devmarks.io cwin Kkwin https://abc8.za.com V9bet 888slot Keonhacai5 ALO8.com F168 rikvip VIN777 Rik88 8kbet KUBET TT88 789club 789club AX88 xoso66 https://sc88.info/ HZ88 MMOO OPEN88 12bet https://nohu90s.asia go88 trang cá độ bóng đá https://nohuq.net/

©2026 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về CNTT

No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC

©2026 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về CNTT

wpDiscuz