Marketing & Contenido
Marketing digital y Creación
Marketing digital y Creación
Audiovisual para tu marca
Nuestro propósito es brindarte un servicio completamente integral. Incluimos el flujo completo desde la creación de videos publicitarios y campañas de marketing que redirigen automáticamente a nuestra plataforma, cerrando el ciclo comercial de tu negocio.
console.log(e)) } else { v.pause() }
}
" x-data="{
playing: false,
interacted: false,
muted: true,
isDragging: false,
currentTime: 0,
duration: 0,
progressPercent: 0,
formatTime(sec) {
if (isNaN(sec) || !sec) return '0:00';
const m = Math.floor(sec / 60);
const s = Math.floor(sec % 60);
return m + ':' + (s < 10 ? '0' : '') + s;
},
startDrag(e) {
this.isDragging = true;
const track = e.currentTarget;
const p = this.$el.querySelector('video');
if (!track || !p) return;
const updatePos = (event) => {
const dur = p.duration || this.duration;
if (!dur || isNaN(dur) || !isFinite(dur)) return;
const rect = track.getBoundingClientRect();
const clientX = event.touches ? event.touches[0].clientX : event.clientX;
const pos = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
const targetSec = pos * dur;
p.currentTime = targetSec;
this.currentTime = targetSec;
this.progressPercent = pos * 100;
this.interacted = true;
};
updatePos(e);
const onMove = (event) => {
if (this.isDragging) {
updatePos(event);
}
};
const onStop = () => {
this.isDragging = false;
window.removeEventListener('pointermove', onMove);
window.removeEventListener('pointerup', onStop);
window.removeEventListener('mousemove', onMove);
window.removeEventListener('mouseup', onStop);
window.removeEventListener('touchmove', onMove);
window.removeEventListener('touchend', onStop);
};
window.addEventListener('pointermove', onMove);
window.addEventListener('pointerup', onStop);
window.addEventListener('mousemove', onMove);
window.addEventListener('mouseup', onStop);
window.addEventListener('touchmove', onMove);
window.addEventListener('touchend', onStop);
}
}">
console.log(e)) } else { v.pause() }
}
" x-data="{
playing: false,
interacted: false,
muted: true,
isDragging: false,
currentTime: 0,
duration: 0,
progressPercent: 0,
formatTime(sec) {
if (isNaN(sec) || !sec) return '0:00';
const m = Math.floor(sec / 60);
const s = Math.floor(sec % 60);
return m + ':' + (s < 10 ? '0' : '') + s;
},
startDrag(e) {
this.isDragging = true;
const track = e.currentTarget;
const p = this.$el.querySelector('video');
if (!track || !p) return;
const updatePos = (event) => {
const dur = p.duration || this.duration;
if (!dur || isNaN(dur) || !isFinite(dur)) return;
const rect = track.getBoundingClientRect();
const clientX = event.touches ? event.touches[0].clientX : event.clientX;
const pos = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
const targetSec = pos * dur;
p.currentTime = targetSec;
this.currentTime = targetSec;
this.progressPercent = pos * 100;
this.interacted = true;
};
updatePos(e);
const onMove = (event) => {
if (this.isDragging) {
updatePos(event);
}
};
const onStop = () => {
this.isDragging = false;
window.removeEventListener('pointermove', onMove);
window.removeEventListener('pointerup', onStop);
window.removeEventListener('mousemove', onMove);
window.removeEventListener('mouseup', onStop);
window.removeEventListener('touchmove', onMove);
window.removeEventListener('touchend', onStop);
};
window.addEventListener('pointermove', onMove);
window.addEventListener('pointerup', onStop);
window.addEventListener('mousemove', onMove);
window.addEventListener('mouseup', onStop);
window.addEventListener('touchmove', onMove);
window.addEventListener('touchend', onStop);
}
}">
console.log(e)) } else { v.pause() }
}
" x-data="{
playing: false,
interacted: false,
muted: true,
isDragging: false,
currentTime: 0,
duration: 0,
progressPercent: 0,
formatTime(sec) {
if (isNaN(sec) || !sec) return '0:00';
const m = Math.floor(sec / 60);
const s = Math.floor(sec % 60);
return m + ':' + (s < 10 ? '0' : '') + s;
},
startDrag(e) {
this.isDragging = true;
const track = e.currentTarget;
const p = this.$el.querySelector('video');
if (!track || !p) return;
const updatePos = (event) => {
const dur = p.duration || this.duration;
if (!dur || isNaN(dur) || !isFinite(dur)) return;
const rect = track.getBoundingClientRect();
const clientX = event.touches ? event.touches[0].clientX : event.clientX;
const pos = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
const targetSec = pos * dur;
p.currentTime = targetSec;
this.currentTime = targetSec;
this.progressPercent = pos * 100;
this.interacted = true;
};
updatePos(e);
const onMove = (event) => {
if (this.isDragging) {
updatePos(event);
}
};
const onStop = () => {
this.isDragging = false;
window.removeEventListener('pointermove', onMove);
window.removeEventListener('pointerup', onStop);
window.removeEventListener('mousemove', onMove);
window.removeEventListener('mouseup', onStop);
window.removeEventListener('touchmove', onMove);
window.removeEventListener('touchend', onStop);
};
window.addEventListener('pointermove', onMove);
window.addEventListener('pointerup', onStop);
window.addEventListener('mousemove', onMove);
window.addEventListener('mouseup', onStop);
window.addEventListener('touchmove', onMove);
window.addEventListener('touchend', onStop);
}
}">
console.log(e)) } else { v.pause() }
}
" x-data="{
playing: false,
interacted: false,
muted: true,
isDragging: false,
currentTime: 0,
duration: 0,
progressPercent: 0,
formatTime(sec) {
if (isNaN(sec) || !sec) return '0:00';
const m = Math.floor(sec / 60);
const s = Math.floor(sec % 60);
return m + ':' + (s < 10 ? '0' : '') + s;
},
startDrag(e) {
this.isDragging = true;
const track = e.currentTarget;
const p = this.$el.querySelector('video');
if (!track || !p) return;
const updatePos = (event) => {
const dur = p.duration || this.duration;
if (!dur || isNaN(dur) || !isFinite(dur)) return;
const rect = track.getBoundingClientRect();
const clientX = event.touches ? event.touches[0].clientX : event.clientX;
const pos = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
const targetSec = pos * dur;
p.currentTime = targetSec;
this.currentTime = targetSec;
this.progressPercent = pos * 100;
this.interacted = true;
};
updatePos(e);
const onMove = (event) => {
if (this.isDragging) {
updatePos(event);
}
};
const onStop = () => {
this.isDragging = false;
window.removeEventListener('pointermove', onMove);
window.removeEventListener('pointerup', onStop);
window.removeEventListener('mousemove', onMove);
window.removeEventListener('mouseup', onStop);
window.removeEventListener('touchmove', onMove);
window.removeEventListener('touchend', onStop);
};
window.addEventListener('pointermove', onMove);
window.addEventListener('pointerup', onStop);
window.addEventListener('mousemove', onMove);
window.addEventListener('mouseup', onStop);
window.addEventListener('touchmove', onMove);
window.addEventListener('touchend', onStop);
}
}">