opentalent_school.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <LayoutNavigation />
  3. <LogicielsSchoolBanner />
  4. <LogicielsSchoolMenuScroll />
  5. <div v-if="shouldShowStickyMenu" id="sticky-menu" class="mt-6">
  6. <LayoutUIStickyMenu
  7. :shouldShowStickyMenu="shouldShowStickyMenu"
  8. :squaresData="squaresData"
  9. />
  10. </div>
  11. <LogicielsSchoolPresentation />
  12. <LogicielsSchoolAvantages />
  13. <LogicielsSchoolFonctionnalites />
  14. <LogicielsSchoolComparatif />
  15. <LogicielsSchoolProjet />
  16. <LogicielsSchoolFormations />
  17. <LogicielsSchoolReviews />
  18. <LayoutFAQ />
  19. <LayoutUISolutionsFooter />
  20. <LayoutFooter id="layout-footer" />
  21. </template>
  22. <script setup>
  23. import { ref, onMounted } from "vue";
  24. const shouldShowStickyMenu = ref(true);
  25. const squaresData = [
  26. {
  27. id: 1,
  28. bgColor: "blue-square",
  29. iconClass: "fa-regular fa-comments icon",
  30. text: "Nous contacter",
  31. url: "/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. url: "/nous-contacter",
  39. },
  40. {
  41. id: 3,
  42. bgColor: "blue-square",
  43. iconClass: "fa-brands fa-readme icon",
  44. text: "Brochure",
  45. url: "https://www.opentalent.fr/fileadmin/stockage/commercial/plaquettes_commerciales/De%CC%81pliant-school_23.pdf",
  46. },
  47. {
  48. id: 4,
  49. bgColor: "darkblue-square",
  50. iconClass: "fa-solid fa-phone icon",
  51. text: "Nous Appeler",
  52. },
  53. ];
  54. // onMounted(() => {
  55. // const stickyMenu = document.getElementById("sticky-menu");
  56. // const footer = document.getElementById("layout-footer");
  57. // const observer = new IntersectionObserver(
  58. // ([entry]) => {
  59. // shouldShowStickyMenu.value = !entry.isIntersecting;
  60. // },
  61. // {
  62. // root: null,
  63. // threshold: 0,
  64. // }
  65. // );
  66. // observer.observe(footer);
  67. // });
  68. </script>
  69. <style scoped>
  70. #sticky-menu {
  71. position: sticky;
  72. top: 25rem;
  73. z-index: 10;
  74. margin-bottom: -35rem;
  75. float: right;
  76. }
  77. @media (max-width: 1800px) {
  78. #sticky-menu {
  79. top: 16rem;
  80. margin-bottom: -28rem;
  81. }
  82. }
  83. </style>