animation_home.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  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 = 4000; // 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 = -32 * 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 torights1 = document.getElementsByClassName('toright1');
  218. Array.from(torights1).forEach(toright1 => {
  219. function slideRight() {
  220. let translateX = 0; // Position de départ (en bas)
  221. function animate() {
  222. translateX += 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  223. toright1.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  224. if (translateX < 31) { // Limite la hauteur à laquelle la forme doit être animée
  225. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  226. }
  227. }
  228. animate(); // Lancer l'animation
  229. }
  230. slideRight(); // Lancer l'animation lorsque la page est chargée
  231. });
  232. let torights2 = document.getElementsByClassName('toright2');
  233. Array.from(torights2).forEach(toright2 => {
  234. function slideRight() {
  235. let translateX = 0; // Position de départ (en bas)
  236. function animate() {
  237. translateX += 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  238. toright2.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  239. if (translateX < 0) { // Limite la hauteur à laquelle la forme doit être animée
  240. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  241. }
  242. }
  243. animate(); // Lancer l'animation
  244. }
  245. slideRight(); // Lancer l'animation lorsque la page est chargée
  246. });
  247. let torights3 = document.getElementsByClassName('toright3');
  248. console.log(torights3)
  249. Array.from(torights3).forEach(toright3 => {
  250. function slideRight() {
  251. let translateX = 0; // Position de départ (en bas)
  252. function animate() {
  253. translateX += 0.9; // Déplacement d'un pixel vers le haut à chaque itération
  254. toright3.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  255. if (translateX < 59) { // Limite la hauteur à laquelle la forme doit être animée
  256. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  257. }
  258. }
  259. animate(); // Lancer l'animation
  260. }
  261. slideRight(); // Lancer l'animation lorsque la page est chargée
  262. });
  263. let moveups = document.getElementsByClassName('moveup');
  264. console.log(moveups);
  265. // Parcourir tous les éléments sélectionnés
  266. Array.from(moveups).forEach(moveup => {
  267. function slideUp() {
  268. let translateY = 0; // Position de départ (en bas)
  269. function animate() {
  270. translateY -= 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  271. moveup.style.transform = `translateY(${translateY}%)`; // Appliquer la transformation
  272. if (translateY > -25) { // Limite la hauteur à laquelle la forme doit être animée
  273. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  274. }
  275. }
  276. animate(); // Lancer l'animation
  277. }
  278. slideUp(); // Lancer l'animation lorsque la page est chargée
  279. });
  280. let torights = document.getElementsByClassName('toright');
  281. console.log(torights);
  282. // Parcourir tous les éléments sélectionnés
  283. Array.from(torights).forEach(toright => {
  284. function slideRight() {
  285. let translateX = 0; // Position de départ (en bas)
  286. function animate() {
  287. translateX += 0.5; // Déplacement d'un pixel vers le haut à chaque itération
  288. toright.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  289. if (translateX > -25) { // Limite la hauteur à laquelle la forme doit être animée
  290. requestAnimationFrame(animate); // Appel récursif de la fonction animate
  291. }
  292. }
  293. animate(); // Lancer l'animation
  294. }
  295. slideRight(); // Lancer l'animation lorsque la page est chargée
  296. });
  297. let torightslows = document.getElementsByClassName('torightslow');
  298. console.log(torightslows);
  299. // Parcourir tous les éléments sélectionnés
  300. Array.from(torightslows).forEach(torightslow => {
  301. function slideRightSlow() {
  302. let translateX = 0; // Position de départ (en bas)
  303. let duration = 8000; // Durée de l'animation en millisecondes
  304. let startTime = null; // Temps de départ de l'animation
  305. function animate(timestamp) {
  306. if (!startTime) startTime = timestamp; // Initialise le temps de départ si ce n'est pas déjà fait
  307. let progress = (timestamp - startTime) / duration; // Calcul de la progression de l'animation
  308. progress = Math.min(progress, 0.8); // Limite la progression à 1 (pour éviter un dépassement)
  309. // Utilise une fonction d'interpolation (ease-in-out) pour ajuster la progression
  310. progress = easeInOut(progress);
  311. translateX = 60 * progress; // Déplacement d'un pixel vers le haut à chaque itération
  312. torightslow.style.transform = `translateX(${translateX}%)`; // Appliquer la transformation
  313. if (progress < 0.8) {
  314. requestAnimationFrame(animate);
  315. }
  316. }
  317. function easeInOut(t) {
  318. return t < 0.5 ? 4 * t * t : -1 + (10 - 2 * t) * t;
  319. }
  320. // Lance l'animation
  321. requestAnimationFrame(animate);
  322. }
  323. slideRightSlow(); // Lancer l'animation lorsque la page est chargée
  324. });