opentalent_manager.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <LayoutNavigation />
  3. <LogicielsManagerBanner />
  4. <LogicielsManagerMenuScroll />
  5. <div v-if="shouldShowStickyMenu" id="sticky-menu">
  6. <LayoutUIStickyMenu
  7. :shouldShowStickyMenu="shouldShowStickyMenu"
  8. :squaresData="squaresData"
  9. />
  10. </div>
  11. <LogicielsManagerPresentation />
  12. <LogicielsManagerAvantages />
  13. <LogicielsManagerFonctionnalites />
  14. <LogicielsManagerPyramide />
  15. <LogicielsManagerFormation />
  16. <LogicielsManagerReviews />
  17. <LayoutFAQ />
  18. <LayoutUISolutionsFooter />
  19. <LayoutFooter id="layout-footer" />
  20. </template>
  21. <script setup>
  22. import { ref, onMounted } from "vue";
  23. const shouldShowStickyMenu = ref(true);
  24. const squaresData = [
  25. {
  26. id: 1,
  27. bgColor: "red-square",
  28. iconClass: "fa-regular fa-comments icon",
  29. text: "Nous contacter",
  30. url: "/nous-contacter",
  31. },
  32. {
  33. id: 2,
  34. bgColor: "red-square",
  35. iconClass: "fa-brands fa-readme icon",
  36. text: "Brochure",
  37. },
  38. {
  39. id: 4,
  40. bgColor: "darkblue-square",
  41. iconClass: "fa-solid fa-phone icon",
  42. text: "Nous appeler",
  43. },
  44. ];
  45. onMounted(() => {
  46. const stickyMenu = document.getElementById("sticky-menu");
  47. const footer = document.getElementById("layout-footer");
  48. const observer = new IntersectionObserver(
  49. ([entry]) => {
  50. shouldShowStickyMenu.value = !entry.isIntersecting;
  51. },
  52. {
  53. root: null,
  54. threshold: 0,
  55. }
  56. );
  57. observer.observe(footer);
  58. });
  59. </script>
  60. <style scoped>
  61. #sticky-menu {
  62. position: sticky;
  63. top: 25rem;
  64. z-index: 10;
  65. margin-bottom: -35rem;
  66. float: right;
  67. }
  68. @media (max-width: 1800px) {
  69. #sticky-menu {
  70. top: 16rem;
  71. margin-bottom: -28rem;
  72. }
  73. }
  74. </style>