opentalent_school.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <template>
  2. <LayoutNavigation />
  3. <LogicielsSchoolBanner />
  4. <LogicielsSchoolMenuScroll class="sticky-scroll" />
  5. <div v-if="shouldShowStickyMenu" id="sticky-menu">
  6. <LayoutUIStickyMenu
  7. :shouldShowStickyMenu="shouldShowStickyMenu"
  8. :squaresData="squaresData"
  9. />
  10. </div>
  11. <LogicielsSchoolPresentation />
  12. <LogicielsSchoolAvantages />
  13. <LogicielsSchoolFonctionnalites />
  14. <LogicielsSchoolComparatif />
  15. <LogicielsSchoolProjet />
  16. <LogicielsSchoolFormations />
  17. <LayoutCarouselTrustCompanie />
  18. <LogicielsSchoolReviews />
  19. <LayoutFAQ id="layout-footer" />
  20. <LayoutUISolutionsFooter id="layout-footer" />
  21. <LayoutFooter id="layout-footer" />
  22. </template>
  23. <script setup>
  24. import { ref, onMounted } from "vue";
  25. const shouldShowStickyMenu = ref(true);
  26. const squaresData = [
  27. {
  28. id: 1,
  29. bgColor: "blue-square",
  30. iconClass: "fa-regular fa-comments icon",
  31. text: "Nous contacter",
  32. },
  33. {
  34. id: 2,
  35. bgColor: "blue-square",
  36. iconClass: "fa-solid fa-circle-info icon",
  37. text: "Demander une demo",
  38. },
  39. {
  40. id: 3,
  41. bgColor: "blue-square",
  42. iconClass: "fa-brands fa-readme icon",
  43. text: "Brochure",
  44. },
  45. {
  46. id: 4,
  47. bgColor: "darkblue-square",
  48. iconClass: "fa-solid fa-phone icon",
  49. text: "Nous Appeler",
  50. },
  51. ];
  52. onMounted(() => {
  53. const stickyMenu = document.getElementById("sticky-menu");
  54. const footer = document.getElementById("layout-footer");
  55. const observer = new IntersectionObserver(
  56. ([entry]) => {
  57. shouldShowStickyMenu.value = !entry.isIntersecting;
  58. },
  59. {
  60. root: null,
  61. threshold: 0,
  62. }
  63. );
  64. observer.observe(footer);
  65. });
  66. </script>
  67. <style scoped>
  68. #sticky-menu {
  69. position: sticky;
  70. top: 20rem;
  71. z-index: 1;
  72. margin-bottom: -30rem;
  73. float: right;
  74. }
  75. </style>