Khoảng giá
Từ: 0 triệu
Đến: Không giới hạn
ĐÈN FLASH PIXEL X800 PRO FOR CANON
Giá từ:
1,190,000đ
ĐÈN FLASH GODOX V1 FOR NIKON
Đèn Flash Godox V1 cho Nikon
Đèn Flash Godox V1 cho Sony
Đơn giá
3,450,000đ
Đế gắn phụ kiện tản sáng Godox (S-R1)
Đơn giá
130,000đ
Choá đèn chớp Godox cho dòng AD600 (AD-R6)
Đơn giá
180,000đ
Softbox adapter cho ngàm Bowens SA-01-BW
Đơn giá
300,000đ
Túi đựng đèn Godox AD600 (PB-600)
Đơn giá
300,000đ
Sạc pin cho đèn flash V860 – VC18
Đơn giá
380,000đ
Đế đỡ Godox S2 – Type
Đơn giá
450,000đ
Sạc cho pin Godox WB87 - AD600
Đơn giá
680,000đ
Điều khiển Godox XT-16
Đơn giá
800,000đ
Đầu đèn nối dài cho AD200 (EC200)
Đơn giá
960,000đ
Đầu gắn đèn kéo dài cho Godox AD600 (AD-H600B)
Đơn giá
1,200,000đ
Bộ phát không dây TTL Godox XPRO (For Canon)
Đơn giá
1,300,000đ
Bộ chuyển đổi điện AC-DC Godox AD600
Đơn giá
1,600,000đ
Bộ đổi nguồn AC26 cho đèn Godox AD600 Pro
Đơn giá
2,380,000đ
Pin sạc Godox WB87 cho Godox AD600B/BM
Đơn giá
2,380,000đ
Đèn Flash Godox V1 cho Canon
Đơn giá
3,450,000đ
Đèn Flash Godox V1 cho Fujifilm
Đơn giá
3,450,000đ
Đèn Flash Godox QS400II
Đơn giá
3,480,000đ
Pin cho AD600pro (WB-26)
Đơn giá
3,600,000đ
Đèn Flash Godox QS600II
Đơn giá
4,200,000đ
Đèn Flash Godox QT400IIM
Đơn giá
6,800,000đ
Pin Godox WB30P cho đèn AD300 Pro
Đơn giá
7,990,000đ
Đèn Flash Godox QT1200IIM
Đèn Flash Godox AD600 Pro
Đơn giá
14,200,000đ
Chóa đèn Godox AD-R12 cho dòng AD300 Pro / AD400 Pro
Vui lòng gọi
ĐÈN FLASH FUJIFILM EF-X500
Giá từ:
2,790,000đ
ĐÈN FLASH FUJIFILM EF-X8
ĐÈN FLASH CANON SPEEDLITE 600EX
ĐÈN FLASH CANON SPEEDLITE 270EX II
FLASH YONGNUO SPEEDLITE 565EX
ĐÈN FLASH CANON SPEEDLITE 540EZ
ĐÈN FLASH GODOX TT600
ĐÈN FLASH NIKON SB-600
ĐÈN FLASH NIKON SB-700
ĐÈN FLASH NIKON SB-22
ĐÈN FLASH NIKON SB-26
ĐÈN FLASH NIKON SB-28
ĐÈN FLASH NIKON SB-910
ĐÈN FLASH NIKON SB-900
ĐÈN FLASH YONGNUO SPEEDLITE 565EX II
ĐÈN FLASH CANON SPEEDLITE 600EX-RT II
ĐÈN FLASH CANON SPEEDLITE X800 PRO
ĐÈN FLASH NIKON SB-28DX
ĐÈN FLASH NIKON SB-800
ĐÈN FLASH NIKON SB-24
ĐÈN FLASH NIKON SB-80DX
ĐÈN FLASH GODOX TT685 II FOR NIKON
ĐÈN FLASH GODOX TT685 II FOR CANON
ĐÈN FLASH GODOX TT685 II FOR SONY
ĐÈN FLASH GODOX TT685 FOR SONY
ĐÈN FLASH GODOX TT685 FOR NIKON
ĐÈN FLASH CANON SPEEDLITE 430EX
ĐÈN FLASH CANON SPEEDLITE 550EX
ĐÈN FLASH CANON SPEEDLITE 430EX II
ĐÈN FLASH CANON SPEEDLITE 600EX-RT
ĐÈN FLASH CANON SPEEDLITE 580EX II
ĐÈN FLASH NISSIN I40 FOR FUJIFILM
ĐÈN FLASH GODOX TT685 FOR CANON
ĐÈN FLASH NIKON SPEEDLIGHT SB-28
ĐÈN FLASH GODOX ML-100 BI
ĐÈN FLASH GODOX AD-100 PRO
ĐÈN FLASH GODOX TT350 FOR FUJIFILM
ĐÈN FLASH GODOX AD-200
ĐÈN GODOX TT520II
ĐÈN FLASH GODOX TT685 II FOR FUJIFILM
ĐÈN FLASH GODOX TT685 FOR FUJIFILM
ĐÈN FLASH MEIKE SPEEDLITE MK-950II FOR CANON
ĐÈN FLASH NIKON SB-25
FLASH SONY HVL-F7S
ĐÈN FLASH GODOX V860 II FOR LUMIX
FLASH CANON SPEEDLITE 90EX
ĐÈN FLASH OLYMPUS FL-LM2
ĐÈN FLASH SONY HVL-F20M
ĐÈN GODOX RETRO LUX JUNIOR
ĐÈN FLASH CANON SPEEDLITE 470EX-AI
ĐÈN FLASH GODOX V860 III FOR LUMIX
ĐÈN FLASH CANON SPEEDLITE 244T
ĐÈN FLASH GODOX V1 FOR OLYMPUS
ĐÈN FLASH PIXEL X800N PRO FOR NIKON
ĐÈN FLASH GODOX V1 FOR LUMIX
ĐÈN FLASH YONGNUO SPEEDLITE 600EX - RT II
ĐÈN FLASH GODOX TT350 FOR NIKON
ĐÈN FLASH GODOX TT350 FOR CANON
ĐÈN FLASH GODOX V1 FOR FUJIFILM
ĐÈN FLASH GODOX V860 II FOR FUJIFILM
ĐÈN FLASH GODOX V860 II FOR CANON
ĐÈN FLASH GODOX V860 II FOR NIKON
CHÂN VỊT
TẢN VUÔNG
TAI GẤU
TẢN SÁNG GODOX AK-R11
KẸP FLASH
CHÂN ĐÈN FLASH GODOX TT685 FOR FUJIFILM
CHÂN ĐÈN FLASH GODOX TT685 FOR SONY
CHÂN ĐÈN FLASH GODOX TT685 FOR NIKON
CHÂN ĐÈN FLASH GODOX TT685 FOR CANON
LED FLASH HEAD FOR AD200
NGÀM TẢN SÁNG GODOX S-R1
TẢN SÁNG GODOX AK-R12
TẢN SÁNG GODOX AK-R22
BỘ TẢN SÁNG ĐÈN FLASH GODOX AK-R1
ĐÈN FLASH GODOX TT350 FOR SONY
BÓNG ĐÈN AD-600 PRO
ĐÈN FLASH GODOX V860 III FOR SONY
ĐÈN FLASH GODOX V860 III FOR CANON
ĐÈN FLASH GODOX V860 III FOR NIKON
Đèn flash Godox V860III For Fujifilm
ĐÈN FLASH GODOX V1 FOR CANON
ĐÈN FLASH MACRO GODOX MF12 - K2
ĐÈN FLASH GODOX V1 PRO FOR SONY
ĐÈN FLASH GODOX V1 PRO FOR CANON
ĐÈN FLASH GODOX V1 PRO FOR NIKON
Flash Sony HVL-F28RM
Flash Sony HVL F32M
Đèn Flash Godox - AD200 Pro II
Đèn Flash Godox AD600BM
ĐÈN FLASH CANON SPEEDLITE 430EX III
ĐÈN FLASH GODOX AD300 PRO
Đèn Flash Sony HVL-F45RM
Đèn Flash Sony HVL-F46RM
Đèn Flash Sony HVL-F60RM
ĐÈN FLASH SONY HVL-F60RM2
Đèn Led Video Light Sony HVL LBPC
Đèn Flash Godox QT600IIM
Pin cho Godox V1 (VB26)
Bộ Barndoor & Snoot Godox BD-10-SN-04 cho dòng AD300 Pro / AD400 Pro
Đầu đèn đôi Godox AD-B2
Đèn Flash GODOX V860II cho Canon
Đèn Flash GODOX V860II cho Nikon
Đèn Flash GODOX V860II cho Sony
Đèn Flash GODOX V860II cho Fujifilm
Đèn Flash GODOX AD200 PRO
(function () {
const requestAnimFrame = (function () {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1000 / 60);
};
})();
const hieuUngPhaoHoa = {
canvas: document.getElementById('hieuUngPhaoHoa__canvas'),
ctx: null,
cw: window.innerWidth,
ch: window.innerHeight,
fireworks: [],
particles: [],
colors: [0, 60, 300], // Mảng các màu
hue: 0,
timerTotal: 30, // Giảm thời gian giữa các lần bắn
timerTick: 0,
isActive: true, // Biến để kiểm soát trạng thái hoạt động
init: function () {
this.ctx = this.canvas.getContext('2d');
this.canvas.width = this.cw;
this.canvas.height = this.ch;
this.loop();
// Tự động dừng sau 5 giây
setTimeout(() => {
this.isActive = false;
}, 5000);
},
calculateDistance: function (p1x, p1y, p2x, p2y) {
const xDistance = p1x - p2x;
const yDistance = p1y - p2y;
return Math.sqrt(Math.pow(xDistance, 2) + Math.pow(yDistance, 2));
},
random: function (min, max) {
return Math.random() * (max - min) + min;
},
createParticles: function (x, y) {
let particleCount = 30;
// Chọn màu ngẫu nhiên từ mảng
this.hue = this.colors[Math.floor(Math.random() * this.colors.length)];
while (particleCount--) {
this.particles.push(new Particle(x, y, this));
}
},
// Main loop
loop: function () {
if (!this.isActive && this.fireworks.length === 0 && this.particles.length === 0) {
return; // Dừng animation khi hết pháo hoa
}
requestAnimFrame(this.loop.bind(this));
this.hue += 0.5;
this.ctx.globalCompositeOperation = 'destination-out';
this.ctx.fillStyle = 'rgba(0, 0, 0, 0.5)';
this.ctx.fillRect(0, 0, this.cw, this.ch);
this.ctx.globalCompositeOperation = 'lighter';
let i = this.fireworks.length;
while (i--) {
this.fireworks[i].draw();
this.fireworks[i].update(i);
}
i = this.particles.length;
while (i--) {
this.particles[i].draw();
this.particles[i].update(i);
}
// Tự động bắn pháo hoa nếu đang hoạt động
if (this.isActive && this.timerTick >= this.timerTotal) {
this.fireworks.push(new Firework(
this.cw / 2, this.ch,
this.random(0, this.cw),
this.random(0, this.ch / 2),
this
));
this.timerTick = 0;
} else {
this.timerTick++;
}
}
};
// Firework class
class Firework {
constructor(sx, sy, tx, ty, main) {
this.main = main;
this.x = sx;
this.y = sy;
this.sx = sx;
this.sy = sy;
this.tx = tx;
this.ty = ty;
this.distanceToTarget = main.calculateDistance(sx, sy, tx, ty);
this.distanceTraveled = 0;
this.coordinates = [];
this.coordinateCount = 3;
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 = main.random(50, 70);
this.targetRadius = 1;
}
update(index) {
this.coordinates.pop();
this.coordinates.unshift([this.x, this.y]);
if (this.targetRadius < 8) {
this.targetRadius += 0.3;
} else {
this.targetRadius = 1;
}
this.speed *= this.acceleration;
const vx = Math.cos(this.angle) * this.speed;
const vy = Math.sin(this.angle) * this.speed;
this.distanceTraveled = this.main.calculateDistance(
this.sx, this.sy, this.x + vx, this.y + vy
);
if (this.distanceTraveled >= this.distanceToTarget) {
this.main.createParticles(this.tx, this.ty);
this.main.fireworks.splice(index, 1);
} else {
this.x += vx;
this.y += vy;
}
}
draw() {
this.main.ctx.beginPath();
this.main.ctx.moveTo(
this.coordinates[this.coordinates.length - 1][0],
this.coordinates[this.coordinates.length - 1][1]
);
this.main.ctx.lineTo(this.x, this.y);
this.main.ctx.strokeStyle = `hsl(${this.main.hue}, 100%, ${this.brightness}%)`;
this.main.ctx.stroke();
}
}
// Particle class
class Particle {
constructor(x, y, main) {
this.main = main;
this.x = x;
this.y = y;
this.coordinates = [];
this.coordinateCount = 5;
while (this.coordinateCount--) {
this.coordinates.push([this.x, this.y]);
}
this.angle = main.random(0, Math.PI * 2);
this.speed = main.random(1, 10);
this.friction = 0.95;
this.gravity = 1;
this.hue = main.random(main.hue - 20, main.hue + 20);
this.brightness = main.random(50, 80);
this.alpha = 1;
this.decay = main.random(0.015, 0.03);
}
update(index) {
this.coordinates.pop();
this.coordinates.unshift([this.x, this.y]);
this.speed *= this.friction;
this.x += Math.cos(this.angle) * this.speed;
this.y += Math.sin(this.angle) * this.speed + this.gravity;
this.alpha -= this.decay;
if (this.alpha <= this.decay) {
this.main.particles.splice(index, 1);
}
}
draw() {
this.main.ctx.beginPath();
this.main.ctx.moveTo(
this.coordinates[this.coordinates.length - 1][0],
this.coordinates[this.coordinates.length - 1][1]
);
this.main.ctx.lineTo(this.x, this.y);
this.main.ctx.strokeStyle = `hsla(${this.hue}, 100%, ${this.brightness}%, ${this.alpha})`;
this.main.ctx.stroke();
}
}
// Khởi chạy khi trang load xong
window.addEventListener('load', () => hieuUngPhaoHoa.init());
})();