| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <template>
- <LayoutNavigation />
- <FormationBanner />
- <FormationMenuScroll />
- <div v-if="shouldShowStickyMenu" id="sticky-menu">
- <LayoutUIStickyMenu
- :shouldShowStickyMenu="shouldShowStickyMenu"
- :squaresData="squaresData"
- />
- </div>
- <FormationPresentation />
- <FormationCatalogue />
- <FormationOPCA />
- <FormationCertification />
- <FormationParticipation />
- <FormationReviews />
- <LayoutFAQ />
- <LayoutUISolutionsFooter id="layout-footer"/>
- <LayoutFooter id="layout-footer" />
- </template>
- <script setup>
- import { ref, onMounted } from "vue";
- import { useRouter } from 'vue-router';
- const router = useRouter();
- const shouldShowStickyMenu = ref(true);
- const squaresData = [
- {
- id: 1,
- bgColor: "green-square",
- iconClass: "fa-regular fa-comments icon",
- text: "Nous contacter",
- url: "/nous-contacter",
- },
- {
- id: 4,
- bgColor: "darkblue-square",
- iconClass: "fa-solid fa-phone icon",
- text: "Nous Appeler"
- },
- ];
- onMounted(() => {
- const stickyMenu = document.getElementById("sticky-menu");
- const footer = document.getElementById("layout-footer");
- const observer = new IntersectionObserver(
- ([entry]) => {
- shouldShowStickyMenu.value = !entry.isIntersecting;
- },
- {
- root: null,
- threshold: 0,
- }
- );
- observer.observe(footer);
- });
- </script>
- <style scoped>
- #sticky-menu {
- position: sticky;
- top: 20rem;
- z-index: 1;
- margin-bottom: -32rem;
- float: right;
- }
- @media (max-width: 1800px) {
- #sticky-menu {
- top: 16rem;
- margin-bottom: -28rem;
- }
- }
- </style>
|