Khoảng giá
Từ: 0 triệu
Đến: Không giới hạn
Nắp thân máy nikon bf-1b
Vui lòng gọi
Nắp thân máy nikon bf-n1
Vui lòng gọi
Nắp đuôi ống kính nikon lf-4
Vui lòng gọi
Mắt ngắm nikon dk-17a chống mờ
Vui lòng gọi
Mắt ngắm phóng đại nikon dk-17m cho d3, d4, d5, df, d810
Vui lòng gọi
Mắt ngắm nikon dk-17 cho d3x, d3, d700, d800
Vui lòng gọi
Ngàm chuyển mắt ngắm nikon dk-18 cho d3, d4, d5, d810
Vui lòng gọi
Mắt ngắm cao su nikon dk-19 cho d3, d4, d5, d810
Vui lòng gọi
Mắt ngắm cao su nikon dk-21 cho d600, d750, d610
Vui lòng gọi
Mắt ngắm phóng đại nikon dk-21m cho d750, d610, d600, d7200
Vui lòng gọi
Mắt ngắm cao su nikon dk-24 cho d5000
Vui lòng gọi
Mắt ngắm cao su nikon dk-29 cho z6, z7
Vui lòng gọi
Mắt ngắm cao su nikon dk-32 cho z fc
Vui lòng gọi
Mắt ngắm cao su nikon dk-33
Vui lòng gọi
Ống ngắm điểm đỏ nikon df-m1 dot sight
Vui lòng gọi
Nikon AN-DC11 Camera Strap
Vui lòng gọi
Nikon AN-DC12 Camera Strap
Vui lòng gọi
Nikon AN-19 Camera Strap
Vui lòng gọi
Nikon AN-DC15 BK Camera Strap (Màu Đen)
Vui lòng gọi
Nikon AN-DC17 Camera Strap
Vui lòng gọi
Nikon AN-DC18 Camera Strap
Vui lòng gọi
Nikon AN-D300 Camera Strap (cho D300)
Vui lòng gọi
Nikon AN-DC22 Camera Strap (cho D6)
Vui lòng gọi
Nikon AN-DC23 Camera Strap (cho Z fc)
Vui lòng gọi
Nikon LN-1 Strap
Vui lòng gọi
Nikon MC-30A Remote Cord
Vui lòng gọi
Nikon MC-36A Remote Control Unit
Vui lòng gọi
Nikon ML-3 Remote Control Set (bao gồm CML-L3)
Vui lòng gọi
Nikon ML-3 Transmitter
Vui lòng gọi
Nikon ML-3 Remote Control Receiver
Vui lòng gọi
Nikon BL-4 Battery Chamber Cover
Nikon BL-5 Battery Chamber Cover
Nikon BL-6 Battery Chamber Cover
Nikon BL-7 Battery Chamber Cover
REMOTE CORD MC-36A for D3, D4, D5, for D500/D810/D...
Nikon AF-S Teleconverter TC-14E III
Nikon AF-S Teleconverter TC-17E II
Nikon AF-S Teleconverter TC-20E III
Miếng lót túi Billingham Eventer MkII Divider Set - Chocolate – chính hãng
Miếng lót túi Billingham Eventer MkII Insert - Olive – chính hãng
Dây đeo Billingham Eventer MkII Front Straps - Black – chính hãng
Dây đeo Billingham Eventer MkII Front Straps - Chocolate – chính hãng
Miếng lót túi Billingham Hadley One Half Camera Insert - Olive – chính hãng
Miếng lót túi Billingham Hadley One Full Camera Insert - Chocolate – chính hãng
Dây đeo Billingham H1 Sling 50mm - Khaki/Tan – chính hãng
Dây đeo Billingham H1 Sling 50mm - Khaki/Chocolate – chính hãng
Dây đeo Billingham H1 Sling 50mm - Black/Black (Brass) – chính hãng
Dây đeo Billingham Hadley One Front Straps - Black – chính hãng
Dây đeo Billingham Hadley One Front Straps - Chocolate – chính hãng
Dây đeo Billingham Hadley One Front Straps - Tan – chính hãng
Miếng lót túi Billingham Hadley Digital Divider Set - Olive – chính hãng
CHÂN MÁY BENRO T691
ĐẦU NỐI CHÂN ĐÈN
Nắp trước ống kính nikon lc-72b
Nắp đuôi ống kính nikon lf-n1
Nắp trước ống kính nikon lc-52
Nắp trước ống kính nikon lc-58
Sigma Front Lens Cap (Nắp trước ống kính) 46mm
Sigma Front Lens Cap (Nắp trước ống kính) 49mm
Sigma Front Lens Cap (Nắp trước ống kính) 52mm
Sigma Front Lens Cap (Nắp trước ống kính) 55mm
Sigma Front Lens Cap (Nắp trước ống kính) 58mm
Sigma Front Lens Cap (Nắp trước ống kính) 62mm
Sigma Front Lens Cap (Nắp trước ống kính) 67mm
Sigma Front Lens Cap (Nắp trước ống kính) 72mm
Sigma Front Lens Cap (Nắp trước ống kính) 77mm
Sigma Front Lens Cap (Nắp trước ống kính) 82mm
Sigma Front Lens Cap (Nắp trước ống kính) 86mm
Sigma Front Lens Cap (Nắp trước ống kính) 95mm
Sigma Front Lens Cap (Nắp trước ống kính) 105mm
Nắp trước ống kính nikon lc-62
Nắp trước ống kính nikon lc-62b
Nắp trước ống kính nikon lc-67
Nắp trước ống kính nikon lc-72
Nắp trước ống kính nikon lc-67b
Nắp trùm trước ống kính nikon cho 14mm f/2.8d
Nắp trước ống kính nikon cho af-s 14-24mm f/2.8g
Nắp trước ống kính nikon lc-77
Nắp trước ống kính nikon lc-77b
Nắp trước ống kính nikon lc-82
Nắp trước ống kính nikon lc-82b
Nắp trước ống kính nikon lc-95
Nắp che chống nước kính ngắm Think Tank EP-NZP
Nắp che chống nước kính ngắm Think Tank EP-15
Miếng đệm nhựa (nắp che chống nước kính ngắm) Think Tank EP-20
Miếng đệm nhựa (nắp che chống nước kính ngắm) Think Tank EP-S
Miếng đệm nhựa (nắp che chống nước kính ngắm) Think Tank EP-N
Miếng đệm nhựa (nắp che chống nước kính ngắm) Think Tank EP-SP
Miếng đệm nhựa (nắp che chống nước kính ngắm) Think Tank EP-NSI
Miếng đệm nhựa (nắp che chống nước kính ngắm) Think Tank EP-NZ
Miếng đệm nhựa (nắp che chống nước kính ngắm) Think Tank EP-F
Túi đeo bảng tên Think Tank Credential Holder V2.0 Long
Túi đeo bảng tên Think Tank Credential Holder V2.0 Short
Nắp trước ống kính nikon cho 16mm f/2.8
Áo che mưa chống nước máy ảnh Think Tank Emergency Rain Cover - Small
Túi đựng laptop Think Tank Retrospective Laptop Sleeve 16
Túi trùm ống kính camera Think Tank Emergency Rain Cover - Medium
Túi trùm ống kính camera Think Tank Emergency Rain Cover - Large
Phụ kiện Báng tay cầm Sony VCT-SGR1 | Chính hãng
Tấm che nắng màn hình laptop Think Tank Pixel Sunscreen V2.0
Điều khiển máy ảnh từ xa Bower cho Canon, Nikon, Sony, Pentax
Khẩu nối kéo dài chân SIRUI SL-200
Webcam Insta360 Link + Tripod Kit | Chính Hãng
Ống kính 7Artisans Mobile Wide-Angle (Black) | Chính Hãng
Ống kính 7Artisans Mobile Fisheye (Black) | Chính Hãng
Phụ kiện 7Artisans Filter Holder for 12mm f/2.8 Lens
Phụ kiện 7Artisans Lens Focus Ring
Webcam Insta360 Link
Bút lau lens cao cấp chính hãng VSGO
Nikon Hotshoe Cover | Khuyến Mãi
Nút bấm chụp ảnh Fujifilm X
ZV-1 Premium Gift | Chính hãng
Ổ cắm điện ELPA ESU-VNI43 (4 ổ điện, 5 công tắc, 3m, 2xUSB)
Ổ cắm điện ELPA ESU-VNC53 (5 ổ điện, 1 công tắc, 3m, 2xUSB)
PGYTECH Protective Wrap (Geometry)
PGYTECH Protective Wrap (Ethnic)
PGYTECH Protective Wrap (Artist)
PGYTECH Protective Wrap (Geek)
Phụ kiện PGYTECH Memory Card Wallet (Deep Navy)
PGYTECH Rain Cover 25L
PGYTECH Mantis RC M1
Miếng dán tay cầm cho Sony RX100 AG-R2/BC1
Khẩu nối kéo dài chân SIRUI SR-66C
Peak Design PL-S-2 - Standard Plate
Củ chân Sirui A10-R-CN
Sirui L-20S 2-Way Pan/Tilt Head
Củ dầu chân quay VA-5
Củ chân Sirui K-30X
Thanh ngang SIRUI HA-77
Củ chân Sirui K40 II
Củ FD-01 2 tay cầm
Peak Design Capture Camera Clip V3 (Silver) | Nhập khẩu
Peak Design Capture Camera Clip V3 (Black) | Nhập khẩu
(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());
})();