animation_home.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. // Récupérer la forme SVG
  2. let dropdowns = document.getElementsByClassName('dropdown');
  3. console.log(dropdowns);
  4. // Parcourir tous les éléments sélectionnés
  5. Array.from(dropdowns).forEach(dropdown => {
  6. function slideDown() {
  7. let translateY = -50; // Position de départ (en bas)
  8. function animate() {
  9. translateY += 1; // Déplacement d'un pixel vers le haut à chaque itération
  10. dropdown.style.transform = `translateY(${translateY}px)`; // Appliquer la transformation
  11. // dropdown.setAttribute('transform', `translate(0, ${translateY})`); // Appliquer la transformation
  12. if (translateY < 200) { // Limite la hauteur à laquelle la forme doit être animée
  13. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  14. }
  15. }
  16. animate(); // Lancer l'animation
  17. }
  18. slideDown(); // Lancer l'animation lorsque la page est chargée
  19. });
  20. let moveups = document.getElementsByClassName('moveup');
  21. console.log(moveups);
  22. // Parcourir tous les éléments sélectionnés
  23. Array.from(moveups).forEach(moveup => {
  24. function slideUp() {
  25. let translateY = 0; // Position de départ (en bas)
  26. function animate() {
  27. translateY -= 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  28. moveup.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  29. if (translateY > -25) { // Limite la hauteur à laquelle la forme doit être animée
  30. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  31. }
  32. }
  33. animate(); // Lancer l'animation
  34. }
  35. slideUp(); // Lancer l'animation lorsque la page est chargée
  36. });
  37. let torights = document.getElementsByClassName('toright');
  38. console.log(torights);
  39. // Parcourir tous les éléments sélectionnés
  40. Array.from(torights).forEach(toright => {
  41. function slideRight() {
  42. let translateX = 0; // Position de départ (en bas)
  43. function animate() {
  44. translateX += 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  45. toright.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  46. if (translateX > -25) { // Limite la hauteur à laquelle la forme doit être animée
  47. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  48. }
  49. }
  50. animate(); // Lancer l'animation
  51. }
  52. slideRight(); // Lancer l'animation lorsque la page est chargée
  53. });
  54. let torightslows = document.getElementsByClassName('torightslow');
  55. console.log(torightslows);
  56. // Parcourir tous les éléments sélectionnés
  57. Array.from(torightslows).forEach(torightslow => {
  58. function slideRightSlow() {
  59. let translateX = 0; // Position de départ (en bas)
  60. let duration = 8000; // Durée de l'animation en millisecondes
  61. let startTime = null; // Temps de départ de l'animation
  62. function animate(timestamp) {
  63. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  64. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  65. progress = Math.min(progress, 0.8); // Limite la progression à 1 (pour éviter un dépassement)
  66. // Utilise une fonction d'interpolation (ease-in-out) pour ajuster la progression
  67. progress = easeInOut(progress);
  68. translateX = 60 * progress; // Déplacement d'un pixel vers le haut à chaque itération
  69. torightslow.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  70. if (progress < 0.8) {
  71. requestAnimationFrame(animate);
  72. }
  73. }
  74. function easeInOut(t) {
  75. return t < 0.5 ? 4 * t * t : -1 + (10 - 2 * t) * t;
  76. }
  77. // Lance l'animation
  78. requestAnimationFrame(animate);
  79. }
  80. slideRightSlow(); // Lancer l'animation lorsque la page est chargée
  81. });
  82. let tolefts = document.getElementsByClassName('toleft');
  83. console.log(tolefts);
  84. // Parcourir tous les éléments sélectionnés
  85. Array.from(tolefts).forEach(toleft => {
  86. function slideLeft() {
  87. let translateX = 0; // Position de départ (en bas)
  88. let duration = 4000; // Durée de l'animation en millisecondes
  89. let startTime = null; // Temps de départ de l'animation
  90. function animate(timestamp) {
  91. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  92. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  93. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  94. // Utilise une fonction d'interpolation (ease-in-out) pour ajuster la progression
  95. progress = easeInOut(progress);
  96. // Calcule la translation en fonction de la progression
  97. translateX = -20 * progress; // -20 est la distance maximale à laquelle vous voulez déplacer l'élément
  98. // Applique la transformation à l'élément
  99. toleft.style.transform = `translateX(${translateX}%)`;
  100. // Continue l'animation si la progression n'a pas atteint 1
  101. if (progress < 0.8) {
  102. requestAnimationFrame(animate);
  103. }
  104. }
  105. // Fonction d'interpolation (ease-in-out)
  106. function easeInOut(t) {
  107. return t < 0.5 ? 4 * t * t : -1 + (4 - 2 * t) * t;
  108. }
  109. // Lance l'animation
  110. requestAnimationFrame(animate);
  111. }
  112. slideLeft(); // Lancer l'animation lorsque la page est chargée
  113. });