animation_home.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  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}%)`; // Appliquer la transformation
  11. // // dropdown.setAttribute('transform', `translate(0, ${translateY})`); // Appliquer la transformation
  12. // if (translateY < 100) { // 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 dropdowns1 = document.getElementsByClassName('dropdown1');
  21. console.log(dropdowns1);
  22. Array.from(dropdowns1).forEach(dropdown1 => {
  23. function slideDown() {
  24. let translateY = 0; // Position de départ (en bas)
  25. let duration = 6000; // Durée de l'animation en millisecondes
  26. let startTime = null; // Temps de départ de l'animation
  27. function animate(timestamp) {
  28. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  29. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  30. progress = Math.min(progress, 0.3); // Limite la progression à 1 (pour éviter un dépassement)
  31. progress = easeInOut(progress);
  32. translateY = 65 * progress; // Déplacement d'un pixel vers le haut à chaque itération
  33. dropdown1.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  34. if (progress < 0.8) {
  35. requestAnimationFrame(animate);
  36. }
  37. }
  38. function easeInOut(t) {
  39. return t < 0.5 ? 4 * t * t : -1 + (10 - 2 * t) * t;
  40. }
  41. requestAnimationFrame(animate);
  42. }
  43. slideDown(); // Lancer l'animation lorsque la page est chargée
  44. });
  45. let dropdowns2 = document.getElementsByClassName('dropdown2');
  46. console.log(dropdowns2);
  47. Array.from(dropdowns2).forEach(dropdown2 => {
  48. function slideDown() {
  49. let translateY = 0; // Position de départ (en bas)
  50. let duration = 9000; // Durée de l'animation en millisecondes
  51. let startTime = null; // Temps de départ de l'animation
  52. function animate(timestamp) {
  53. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  54. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  55. progress = Math.min(progress, 0.3); // Limite la progression à 1 (pour éviter un dépassement)
  56. progress = easeInOut(progress);
  57. translateY = 120 * progress; // Déplacement d'un pixel vers le haut à chaque itération
  58. dropdown2.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  59. if (progress < 0.8) {
  60. requestAnimationFrame(animate);
  61. }
  62. }
  63. function easeInOut(t) {
  64. return t < 0.5 ? 4 * t * t : -1 + (10 - 2 * t) * t;
  65. }
  66. requestAnimationFrame(animate);
  67. }
  68. slideDown(); // Lancer l'animation lorsque la page est chargée
  69. });
  70. let dropdowns3 = document.getElementsByClassName('dropdown3');
  71. console.log(dropdowns3);
  72. Array.from(dropdowns3).forEach(dropdown3 => {
  73. function slideDown() {
  74. let translateY = 0; // Position de départ (en bas)
  75. let duration = 7000; // Durée de l'animation en millisecondes
  76. let startTime = null; // Temps de départ de l'animation
  77. function animate(timestamp) {
  78. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  79. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  80. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  81. progress = easeInOut(progress);
  82. translateY = 75 * progress; // Déplacement d'un pixel vers le haut à chaque itération
  83. dropdown3.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  84. if (progress < 0.8) {
  85. requestAnimationFrame(animate);
  86. }
  87. }
  88. function easeInOut(t) {
  89. return t < 0.5 ? 4 * t * t : -1 + (10 - 2 * t) * t;
  90. }
  91. requestAnimationFrame(animate);
  92. }
  93. slideDown(); // Lancer l'animation lorsque la page est chargée
  94. });
  95. let dropdowns4 = document.getElementsByClassName('dropdown4');
  96. console.log(dropdowns4);
  97. Array.from(dropdowns4).forEach(dropdown4 => {
  98. function slideDown() {
  99. let translateY = 0; // Position de départ (en bas)
  100. let duration = 6000; // Durée de l'animation en millisecondes
  101. let startTime = null; // Temps de départ de l'animation
  102. function animate(timestamp) {
  103. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  104. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  105. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  106. progress = easeInOut(progress);
  107. translateY = 85 * progress; // Déplacement d'un pixel vers le haut à chaque itération
  108. dropdown4.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  109. if (progress < 0.8) {
  110. requestAnimationFrame(animate);
  111. }
  112. }
  113. function easeInOut(t) {
  114. return t < 0.5 ? 4 * t * t : -1 + (10 - 2 * t) * t;
  115. }
  116. requestAnimationFrame(animate);
  117. }
  118. slideDown(); // Lancer l'animation lorsque la page est chargée
  119. });
  120. let dropdowns5 = document.getElementsByClassName('dropdown5');
  121. console.log(dropdowns5);
  122. Array.from(dropdowns5).forEach(dropdown5 => {
  123. function slideDown() {
  124. let translateY = 0; // Position de départ (en bas)
  125. let duration = 6000; // Durée de l'animation en millisecondes
  126. let startTime = null; // Temps de départ de l'animation
  127. function animate(timestamp) {
  128. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  129. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  130. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  131. progress = easeInOut(progress);
  132. translateY = 70 * progress; // Déplacement d'un pixel vers le haut à chaque itération
  133. dropdown5.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  134. if (progress < 0.8) {
  135. requestAnimationFrame(animate);
  136. }
  137. }
  138. function easeInOut(t) {
  139. return t < 0.5 ? 4 * t * t : -1 + (10 - 2 * t) * t;
  140. }
  141. requestAnimationFrame(animate);
  142. }
  143. slideDown(); // Lancer l'animation lorsque la page est chargée
  144. });
  145. let tolefts1 = document.getElementsByClassName('toleft1');
  146. Array.from(tolefts1).forEach(toleft1 => {
  147. function slideLeft() {
  148. let translateX = 0; // Position de départ (en bas)
  149. let duration = 5000; // Durée de l'animation en millisecondes
  150. let startTime = null; // Temps de départ de l'animation
  151. function animate(timestamp) {
  152. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  153. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  154. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  155. progress = easeInOut(progress);
  156. translateX = -35 * progress; // -20 est la distance maximale à laquelle vous voulez déplacer l'élément
  157. toleft1.style.transform = `translateX(${translateX}%)`;
  158. if (progress < 0.8) {
  159. requestAnimationFrame(animate);
  160. }
  161. }
  162. function easeInOut(t) {
  163. return t < 0.5 ? 4 * t * t : -1 + (4 - 2 * t) * t;
  164. }
  165. requestAnimationFrame(animate);
  166. }
  167. slideLeft(); // Lancer l'animation lorsque la page est chargée
  168. });
  169. let tolefts2 = document.getElementsByClassName('toleft2');
  170. Array.from(tolefts2).forEach(toleft2 => {
  171. function slideLeft() {
  172. let translateX = 0; // Position de départ (en bas)
  173. let duration = 4000; // Durée de l'animation en millisecondes
  174. let startTime = null; // Temps de départ de l'animation
  175. function animate(timestamp) {
  176. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  177. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  178. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  179. progress = easeInOut(progress);
  180. translateX = -32 * progress; // -20 est la distance maximale à laquelle vous voulez déplacer l'élément
  181. toleft2.style.transform = `translateX(${translateX}%)`;
  182. if (progress < 0.8) {
  183. requestAnimationFrame(animate);
  184. }
  185. }
  186. function easeInOut(t) {
  187. return t < 0.5 ? 4 * t * t : -1 + (4 - 2 * t) * t;
  188. }
  189. requestAnimationFrame(animate);
  190. }
  191. slideLeft(); // Lancer l'animation lorsque la page est chargée
  192. });
  193. let tolefts3 = document.getElementsByClassName('toleft3');
  194. Array.from(tolefts3).forEach(toleft3 => {
  195. function slideLeft() {
  196. let translateX = 0; // Position de départ (en bas)
  197. let duration = 4000; // Durée de l'animation en millisecondes
  198. let startTime = null; // Temps de départ de l'animation
  199. function animate(timestamp) {
  200. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  201. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  202. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  203. progress = easeInOut(progress);
  204. translateX = -35 * progress; // -20 est la distance maximale à laquelle vous voulez déplacer l'élément
  205. toleft3.style.transform = `translateX(${translateX}%)`;
  206. if (progress < 0.8) {
  207. requestAnimationFrame(animate);
  208. }
  209. }
  210. function easeInOut(t) {
  211. return t < 0.5 ? 4 * t * t : -1 + (4 - 2 * t) * t;
  212. }
  213. requestAnimationFrame(animate);
  214. }
  215. slideLeft(); // Lancer l'animation lorsque la page est chargée
  216. });
  217. let tolefts4 = document.getElementsByClassName('toleft4');
  218. Array.from(tolefts4).forEach(toleft4 => {
  219. function slideLeft() {
  220. let translateX = 0; // Position de départ (en bas)
  221. let duration = 5000; // Durée de l'animation en millisecondes
  222. let startTime = null; // Temps de départ de l'animation
  223. function animate(timestamp) {
  224. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  225. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  226. progress = Math.min(progress, 0.5); // Limite la progression à 1 (pour éviter un dépassement)
  227. progress = easeInOut(progress);
  228. translateX = -29 * progress; // -20 est la distance maximale à laquelle vous voulez déplacer l'élément
  229. toleft4.style.transform = `translateX(${translateX}%)`;
  230. if (progress < 0.8) {
  231. requestAnimationFrame(animate);
  232. }
  233. }
  234. function easeInOut(t) {
  235. return t < 0.5 ? 4 * t * t : -1 + (4 - 2 * t) * t;
  236. }
  237. requestAnimationFrame(animate);
  238. }
  239. slideLeft(); // Lancer l'animation lorsque la page est chargée
  240. });
  241. let torights1 = document.getElementsByClassName('toright1');
  242. Array.from(torights1).forEach(toright1 => {
  243. function slideRight() {
  244. let translateX = 0; // Position de départ (en bas)
  245. function animate() {
  246. translateX += 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  247. toright1.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  248. if (translateX < 31) { // Limite la hauteur à laquelle la forme doit être animée
  249. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  250. }
  251. }
  252. animate(); // Lancer l'animation
  253. }
  254. slideRight(); // Lancer l'animation lorsque la page est chargée
  255. });
  256. let torights2 = document.getElementsByClassName('toright2');
  257. Array.from(torights2).forEach(toright2 => {
  258. function slideRight() {
  259. let translateX = 0; // Position de départ (en bas)
  260. function animate() {
  261. translateX += 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  262. toright2.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  263. if (translateX < 0) { // Limite la hauteur à laquelle la forme doit être animée
  264. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  265. }
  266. }
  267. animate(); // Lancer l'animation
  268. }
  269. slideRight(); // Lancer l'animation lorsque la page est chargée
  270. });
  271. let torights3 = document.getElementsByClassName('toright3');
  272. console.log(torights3)
  273. Array.from(torights3).forEach(toright3 => {
  274. function slideRight() {
  275. let translateX = 0; // Position de départ (en bas)
  276. function animate() {
  277. translateX += 0.9; // Déplacement d'un pixel vers le haut à chaque itération
  278. toright3.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  279. if (translateX < 59) { // Limite la hauteur à laquelle la forme doit être animée
  280. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  281. }
  282. }
  283. animate(); // Lancer l'animation
  284. }
  285. slideRight(); // Lancer l'animation lorsque la page est chargée
  286. });
  287. let moveups = document.getElementsByClassName('moveup');
  288. console.log(moveups);
  289. Array.from(moveups).forEach(moveup => {
  290. function slideUp() {
  291. let translateY = 100; // Position de départ (en bas)
  292. function animate() {
  293. translateY -= 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  294. moveup.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  295. if (translateY > -0) { // Limite la hauteur à laquelle la forme doit être animée
  296. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  297. }
  298. }
  299. animate(); // Lancer l'animation
  300. }
  301. slideUp(); // Lancer l'animation lorsque la page est chargée
  302. });