qui-sommes-nous.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <template>
  2. <LayoutNavigation />
  3. <AboutBanner />
  4. <CommonMenuScroll :menus="menus" class="mb-6" />
  5. <div v-if="shouldShowStickyMenu" id="sticky-menu">
  6. <CommonStickyMenu
  7. :shouldShowStickyMenu="shouldShowStickyMenu"
  8. :squaresData="squaresData"
  9. />
  10. </div>
  11. <AboutHistoire />
  12. <AboutValeurs />
  13. <AboutLogiciels />
  14. <AboutAgenda />
  15. <AboutChronologie />
  16. <AboutEquipe />
  17. <AboutFAQ />
  18. <LayoutFooterPrefooter />
  19. <LayoutFooter id="layout-footer" />
  20. </template>
  21. <script setup>
  22. import { ref, onMounted } from "vue";
  23. const menus = ref([
  24. { id: "Qui-sommes-nous", label: "Qui sommes-nous", element: null },
  25. { id: "valeurs", label: "Nos valeurs", element: null },
  26. { id: "software", label: "Nos logiciels", element: null },
  27. { id: "agenda", label: "L'agenda opentalent", element: null },
  28. { id: "story", label: "Notre Histoire", element: null },
  29. { id: "team", label: "Notre équipe", element: null },
  30. { id: "faq", label: "Aide", element: null },
  31. ]).value;
  32. const shouldShowStickyMenu = ref(true);
  33. const squaresData = [
  34. {
  35. id: 1,
  36. bgColor: "green-square",
  37. iconClass: "fa-regular fa-comments icon",
  38. text: "Nous contacter",
  39. url: "/nous-contacter",
  40. },
  41. {
  42. id: 4,
  43. bgColor: "darkblue-square",
  44. iconClass: "fa-solid fa-phone icon",
  45. text: "Nous Appeler",
  46. },
  47. ];
  48. onMounted(() => {
  49. const stickyMenu = document.getElementById("sticky-menu");
  50. const footer = document.getElementById("layout-footer");
  51. const observer = new IntersectionObserver(
  52. ([entry]) => {
  53. shouldShowStickyMenu.value = !entry.isIntersecting;
  54. },
  55. {
  56. root: null,
  57. threshold: 0,
  58. }
  59. );
  60. observer.observe(footer);
  61. });
  62. </script>
  63. <style scoped>
  64. #sticky-menu {
  65. position: sticky;
  66. top: 20rem;
  67. z-index: 10;
  68. margin-bottom: -32rem;
  69. float: right;
  70. }
  71. @media (max-width: 1800px) {
  72. #sticky-menu {
  73. top: 16rem;
  74. margin-bottom: -28rem;
  75. }
  76. }
  77. </style>