Khoảng giá
Từ: 0 triệu
Đến: Không giới hạn
Máy ảnh Nikon Z6 II (Body Only) CHÍNH HÃNG
Giá giao động:
32,500,000đ
Máy ảnh Nikon Z6 Mark III CHÍNH HÃNG
Giá giao động:
49,500,000đ
Máy ảnh Nikon Z fc (Natural Gray, Body Only) | Chính hãng VIC
Giá giao động:
22,720,000đ
MÁY ẢNH NIKON D4
HÀNG MỚI ĐÃ TẠM HẾT
Hàng cũ giá từ:
11,000,000đ
Máy ảnh Nikon D7500 (Body Only)
Máy ảnh Nikon Z9 (Body Only) | Chính hãng VIC
Máy ảnh Nikon Z30 (Body Only) | Chính hãng VIC
Giá giao động:
15,790,000đ
Máy ảnh Nikon Z50 (Body Only)
Máy ảnh Nikon Z7 (Body Only)
Vui lòng gọi
Máy ảnh Nikon Z5 (Body Only)
Giá từ:
20,500,000đ
Máy ảnh Nikon Z6 (Body Only)
Giá từ:
26,500,000đ
Máy ảnh Nikon Z7 II (Body Only)
Máy ảnh Nikon Z8 (Body Only)
Giá giao động:
83,280,000đ
Máy ảnh Nikon Z8 + Lens 24-120mm f/4
Giá giao động:
104,910,000đ
Máy ảnh Nikon D500 (Body Only) | Chính hãng
Giá từ:
16,500,000đ
Máy ảnh Nikon Z5 +Lens 24-200mm f/4-6.3
Vui lòng gọi
Máy ảnh Nikon Z fc (White, Body Only) | Chính hãng VIC
Vui lòng gọi
Máy ảnh Nikon Z fc (Sand Beige, Body Only) | Chính hãng VIC
Vui lòng gọi
Máy ảnh Nikon Z fc (Amber Brown, Body Only) | Chính hãng
Vui lòng gọi
Máy ảnh Nikon Z fc (Coral Pink, Body Only) | Chính hãng VIC
Vui lòng gọi
Máy ảnh Nikon Z fc (Mint Green, Body Only) | Chính hãng VIC
Vui lòng gọi
Máy ảnh Nikon Z fc (White, Body Only) | Nhập Khẩu
Vui lòng gọi
Máy ảnh Nikon Z fc (Sand Beige, Body Only) | Nhập Khẩu
Vui lòng gọi
Máy ảnh Nikon Z fc (Amber Brown, Body Only) | Nhập Khẩu
Vui lòng gọi
Máy ảnh Nikon Z fc (Coral Pink, Body Only) | Nhập Khẩu
Vui lòng gọi
Máy ảnh Nikon Z fc (Mint Green, Body Only) | Nhập Khẩu
Vui lòng gọi
MÁY ẢNH NIKON D5000
Vui lòng gọi
MÁY ẢNH NIKON D810
Vui lòng gọi
Nikon Coolpix P1100
Vui lòng gọi
Nikon D850 DSLR kèm Kit AF-S NIKKOR 24-120mm f/4G ED VR Lens
Nikon D780 DSLR kèm Kit AF-S NIKKOR 24-120mm f/4G Lens
Nikon D7500 DSLR kèm Kit AF-S DX NIKKOR 18-140mm f/3.5-5.6G ED VR Lens
Máy ảnh Nikon Z7 II kèm ống kính NIKKOR Z 24-70mm f/4 S – chính hãng
Máy ảnh Nikon Z7 II kèm ống kính NIKKOR Z 24-120mm f/4 S – chính hãng
Máy ảnh Nikon Z6 III kèm ống kính NIKKOR Z 24-200mm f/4-6.3 – chính hãng
Máy ảnh Nikon Z6 II kèm ống kính NIKKOR Z 24-70mm f/4 S – chính hãng
Máy ảnh Nikon Z6 II kèm ống kính NIKKOR Z 24-120mm f/4 S – chính hãng
Máy ảnh Nikon Z5 II kèm ống kính NIKKOR Z 24-50mm f/4-6.3 – chính hãng
Máy ảnh Nikon Z5 II kèm ống kính NIKKOR Z 24-70mm f/4 S – chính hãng
Máy ảnh Nikon Z5 II kèm ống kính NIKKOR Z 24-200mm f/4-6.3 – chính hãng
Máy ảnh Nikon Z fc (bạc) kèm ống kính NIKKOR Z 28mm f/2.8 SE – chính hãng
Máy ảnh Nikon Z fc (bạc) kèm ống kính NIKKOR Z DX 16-50mm f/3.5-6.3 VR (bạc) – chính hãng
Máy ảnh Nikon Z50 (đen) kèm ống kính NIKKOR Z DX 16-50mm f/3.5-6.3 VR – chính hãng
Máy ảnh Nikon Z50 II kèm ống kính NIKKOR Z DX 16-50mm f/3.5-6.3 VR – chính hãng
Máy ảnh Nikon Z50 II kèm 2 ống kính NIKKOR Z DX 16-50mm VR và 50-250mm VR – chính hãng
Máy ảnh Nikon Z50 II kèm ống kính NIKKOR Z DX 18-140mm f/3.5-6.3 VR – chính hãng
MÁY ẢNH NIKON D300S
Máy ảnh Nikon Z5 II
Máy ảnh Nikon D750 (Body Only)
Nikon Z50 Mirrorless Camera kèm NIKKOR Z DX 16-50mm f/3.5-6.3 VR Lens Kit – chính hãng
Nikon Z50 II Mirrorless Camera kèm NIKKOR Z DX 16-50mm f/3.5-6.3 VR Lens Kit – chính hãng
Nikon Z50 II Mirrorless Camera kèm NIKKOR Z DX 16-50mm f/3.5-6.3 VR và NIKKOR Z DX 50-250mm f/4.5-6.3 VR Lenses Kit
Máy ảnh Nikon D5500
Máy ảnh Nikon COOLPIX P1000
Máy ảnh Nikon COOLPIX P1000 | Chính hãng
Máy ảnh Nikon Z6 II NHẬP KHẨU
Máy ảnh Nikon Z6 Mark III NHẬP KHẨU
Máy ảnh Nikon Z30 (đen) kèm ống kính NIKKOR Z DX 16-50mm f/3.5-6.3 VR – chính hãng
Máy ảnh Nikon Z FC ( Body Only) | Nhập Khẩu
Máy ảnh Nikon Z50 II Body
Máy ảnh Nikon Z5 II - (Hãng)
Máy ảnh Nikon D780 (Body)
Máy ảnh Nikon Zf Kit Z 40mm F2 SE
Máy ảnh Nikon D850 (Body Only)
Nikon Z6 Mark III Kèm Lens Z 24-70 mm f/4 S, Mới 100% (Chính Hãng VIC)
Máy ảnh Nikon D6 Body Only
Máy ảnh Nikon D7200
Máy ảnh Nikon D7000
Máy ảnh Nikon D610
Máy Ảnh Nikon D5
MÁY ẢNH NIKON 1 J1
MÁY ẢNH NIKON D3X
MÁY ẢNH NIKON D600
MÁY ẢNH NIKON D70S
MÁY ẢNH NIKON D5200
MÁY ẢNH NIKON D800E
Máy ảnh Nikon D5300 (Body Only) | Chính hãng
Máy ảnh Nikon D3400 | Chính hãng
Máy ảnh Nikon D5600 (Body Only) | Chính hãng
Máy ảnh Nikon D7100 | Chính hãng
MÁY ẢNH NIKON D3300
MÁY ẢNH NIKON D3100
MÁY ẢNH NIKON D5100
MÁY ẢNH NIKON D3200
MÁY ẢNH NIKON D3S
MÁY ẢNH NIKON D60
MÁY ẢNH NIKON D70
MÁY ẢNH NIKON D300
MÁY ẢNH NIKON D80
MÁY ẢNH NIKON D4S
MÁY ẢNH NIKON D800
MÁY ẢNH NIKON D200
MÁY ẢNH NIKON D2X
MÁY ẢNH NIKON D40X
MÁY ẢNH NIKON D90
MÁY ẢNH NIKON D3000
MÁY ẢNH NIKON D3500
MÁY ẢNH NIKON D700
(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());
})();