Login

Sign Up

After creating an account, you'll be able to track your payment status, track the confirmation and you can also rate the tour after you finished the tour.
Username*
Password*
Confirm Password*
First Name*
Last Name*
Birth Date*
Email*
Phone*
Country*
* Creating an account means you're okay with our Terms of Service and Privacy Statement.
Please agree to all the terms and conditions before proceeding to the next step

Already a member?

Login

promo-tag

Ordino Arcalis

EARLY BOOKINGS 2025
ski em andorra

Ski em Andorra

Dezembro > Abril

Ski em Andorra oferece 3 estações: Grandvalira, Pal Arinsal e Ordino Arcalís. Combina cidade histórica e cultura com montanhas perfeitas para todos os níveis de ski/snow.

Ski em Andorra oferece 3 estações: Grandvalira, Pal Arinsal e Ordino Arcalís. Combina cidade […]

Proceed Booking

document.addEventListener("DOMContentLoaded", function () { const targetPercentage = 8; // Percentual final const animationDuration = 1200; // Duração total da animação do círculo (1200ms) const skillCircle = document.getElementById('skillCircle'); const skillPercentage = document.getElementById('skillPercentage'); const skillCaption = document.getElementById('skillCaption'); let startTime; function animateSkillCircle(timestamp) { if (!startTime) startTime = timestamp; const elapsedTime = timestamp - startTime; // Calcula o progresso com easing manual const progress = Math.min(elapsedTime / animationDuration, 1); // De 0 a 1 const easedProgress = easeOutQuad(progress); // Aplicar easing const currentPercentage = easedProgress * targetPercentage; // Atualiza o gradiente do círculo skillCircle.style.background = `conic-gradient( #81d742 ${currentPercentage}%, #dcdcdc ${currentPercentage}% )`; // Atualiza a opacidade do texto (termina antes do círculo) if (progress >= 0.5) { skillPercentage.style.opacity = 1; // Aparece mais rápido skillCaption.style.opacity = 1; // Aparece mais rápido } else { skillPercentage.style.opacity = easedProgress * 2; // Ajuste para acelerar skillCaption.style.opacity = easedProgress * 2; // Ajuste para acelerar } // Continua a animação se não completou if (progress < 1) { requestAnimationFrame(animateSkillCircle); } } // Função de easing personalizada (ease-out quadrático) function easeOutQuad(t) { return t * (2 - t); // Acelera no início e desacelera no final } // Inicia a animação requestAnimationFrame(animateSkillCircle); });