Seu piso novo em 1 minuto
Transformação incrível com resultados que você pode ver
🖱️ Clique aqui ou arraste a barra azul para ver o resultado incrível!
📱 No celular: toque e arraste a barra azul
(function() {
const imageContainer = document.getElementById('imageContainer');
const divider = document.getElementById('divider');
const afterImage = document.getElementById('afterImage');
const labelAntes = document.getElementById('labelAntes');
const labelDepois = document.getElementById('labelDepois');
let isDragging = false;
let containerRect;
function updatePosition(percentage) {
percentage = Math.max(0, Math.min(100, percentage));
const clipValue = 100 - percentage;
divider.style.left = percentage + '%';
afterImage.style.clipPath = `inset(0 ${clipValue}% 0 0)`;
// Update label states
if (percentage > 50) {
labelAntes.classList.remove('active');
labelDepois.classList.add('active');
} else {
labelAntes.classList.add('active');
labelDepois.classList.remove('active');
}
}
function getPositionFromEvent(e) {
const clientX = e.type.includes('touch') ? e.touches[0].clientX : e.clientX;
return ((clientX - containerRect.left) / containerRect.width) * 100;
}
function startDrag(e) {
isDragging = true;
containerRect = imageContainer.getBoundingClientRect();
document.body.classList.add('no-select');
e.preventDefault();
}
function drag(e) {
if (!isDragging) return;
const percentage = getPositionFromEvent(e);
updatePosition(percentage);
e.preventDefault();
}
function stopDrag() {
isDragging = false;
document.body.classList.remove('no-select');
}
// Mouse events
divider.addEventListener('mousedown', startDrag);
document.addEventListener('mousemove', drag);
document.addEventListener('mouseup', stopDrag);
// Touch events
divider.addEventListener('touchstart', startDrag);
document.addEventListener('touchmove', drag, { passive: false });
document.addEventListener('touchend', stopDrag);
// Click on "DEPOIS" label
labelDepois.addEventListener('click', function() {
containerRect = imageContainer.getBoundingClientRect();
animateToPosition(85);
});
// Click on "ANTES" label
labelAntes.addEventListener('click', function() {
containerRect = imageContainer.getBoundingClientRect();
animateToPosition(15);
});
function animateToPosition(targetPercentage) {
const currentLeft = parseFloat(divider.style.left) || 0;
const difference = targetPercentage - currentLeft;
const duration = 800;
const startTime = Date.now();
function animate() {
const elapsed = Date.now() - startTime;
const progress = Math.min(elapsed / duration, 1);
// Easing function (ease-out)
const easeOut = 1 - Math.pow(1 - progress, 3);
const currentPercentage = currentLeft + (difference * easeOut);
updatePosition(currentPercentage);
if (progress < 1) {
requestAnimationFrame(animate);
}
}
animate();
}
// Global function for instruction click
window.revealResult = function() {
containerRect = imageContainer.getBoundingClientRect();
animateToPosition(85);
};
// Initialize position
updatePosition(0);
})();