Advertisement
Psychokiller1888

body

Dec 16th, 2022 (edited)
558
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <div id="mobileOverlay">
  2.     <div className="mobileOverlay_mainContainer">
  3.         <div className="mobileOverlay_container" data-action="mailto:" id="mobileOverlay_email"><i
  4.                 className="fa-light fa-envelope fa-5x"></i></div>
  5.         <div className="mobileOverlay_container" data-action="tel:" id="mobileOverlay_phone"><i
  6.                 className="fa-light fa-phone fa-5x"></i></div>
  7.         <div className="mobileOverlay_container gmap" data-action="/" id="mobileOverlay_plan"><i
  8.                 className="fa-light fa-map-location-dot fa-5x"></i></div>
  9.         <div className="mobileOverlay_container" data-action="/" id="mobileOverlay_infopage"><i
  10.                 className="fa-light fa-circle-info fa-5x"></i></div>
  11.         <div className="mobileOverlay_container facebook" data-action="https://www.facebook.com/"
  12.              id="mobileOverlay_facebook"><i className="fa-brands fa-facebook fa-5x"></i></div>
  13.         <div className="mobileOverlay_container twitter" data-action="https://twitter.com/" id="mobileOverlay_twitter">
  14.             <i className="fa-brands fa-twitter-square fa-5x"></i></div>
  15.         <div className="mobileOverlay_container instagram" data-action="https://www.instagram.com/"
  16.              id="mobileOverlay_instagram"><i className="fa-brands fa-instagram fa-5x"></i></div>
  17.         <div className="mobileOverlay_container linkedin" data-action="https://www.linkedin.com/in/"
  18.              id="mobileOverlay_linkedin"><i className="fa-brands fa-linkedin fa-5x"></i></div>
  19.         <div className="mobileOverlay_icon" id="mobileOverlay_close"><i className="fa-light fa-times fa-2x"></i></div>
  20.     </div>
  21. </div>
  22. <div className="mobileOverlay_icon" id="mobileOverlay_open"><i className="fa-light fa-bars fa-2"></i></div>
  23. <script type="text/javascript">
  24.     /*
  25.   Adds a mobile quick action overlay. Visitors of your site on phones usually want to contact you directly.
  26.   Let them do this! The menu icon only shows when not scrolling. Fill in the data var with your info. Leaving one empty causes
  27.   the button not to appear on screen. Opening the overlay will present the user with a simple button menu with your defined quick actions!
  28.   @copyright MIT - Laurent Chervet
  29.    */
  30.     const mobileOverlayDebug = false
  31.     window.mobileOverlay = function () {
  32.         if (typeof (window.isMobileDevice) === typeof (Function)) {
  33.             if (!window.isMobileDevice() && !mobileOverlayDebug) {
  34.                 return
  35.             }
  36.         } else {
  37.             if (!mobileOverlayDebug) {
  38.                 return
  39.             }
  40.         }
  41.         const data = {
  42.             'email': 'bel-air@bel-air.swiss', // email address
  43.             'phone': '0041266731414', // full phone number
  44.             'plan': '/contact', // relative url
  45.             'infopage': '/page/a-propos', // relative url
  46.             'facebook': 'belairpraz', //facebook page name
  47.             'twitter': 'belairlac', // twitter account name
  48.             'instagram': 'belairpraz', // instagram account name
  49.             'linkedin': '' // linkedin account name
  50.         }
  51.  
  52.         const overlay = document.querySelector('#mobileOverlay')
  53.         overlay.style.display = 'none'
  54.  
  55.         Object.keys(data).forEach(key => {
  56.             if (data[key]) {
  57.                 let el = document.getElementById(`mobileOverlay_${key}`)
  58.                 el.style.display = 'flex'
  59.             }
  60.         })
  61.         document.querySelector('#mobileOverlay_open').style.display = 'flex'
  62.  
  63.         document.querySelectorAll('[id^="mobileOverlay_"]').forEach(el => {
  64.             if (el.style.display !== 'none') {
  65.                 el.addEventListener('click', function () {
  66.                     if (!el.classList.contains('mobileOverlay_icon')) {
  67.                         if (el.dataset.action === '/') {
  68.                             let pathname = window.location.pathname
  69.                             if (pathname.includes('/page/')) {
  70.                                 let explode = pathname.split('/')
  71.                                 explode.pop()
  72.                                 window.location = `${explode.join('/')}/${data[el.id.split('_')[1]]}`
  73.                             } else {
  74.                                 window.location = `${window.location.href}${data[el.id.split('_')[1]]}`
  75.                             }
  76.                         } else {
  77.                             window.location = el.dataset.action + data[el.id.split('_')[1]]
  78.                         }
  79.                     }
  80.                 })
  81.             }
  82.         })
  83.  
  84.         document.querySelector('#mobileOverlay_open').addEventListener('click', function () {
  85.             this.style.display = 'none'
  86.             document.querySelector('#mobileOverlay').style.display = 'flex'
  87.             document.querySelector('#mobileOverlay_close').style.display = 'flex'
  88.         })
  89.  
  90.         document.querySelector('#mobileOverlay_close').addEventListener('click', function () {
  91.             document.querySelector('#mobileOverlay_open').style.display = 'flex'
  92.             document.querySelector('#mobileOverlay').style.display = 'none'
  93.         })
  94.  
  95.         let scrolling
  96.         document.addEventListener('scroll', function (e) {
  97.             window.clearTimeout(scrolling)
  98.             if (document.querySelector('#mobileOverlay').style.display === 'none' || !document.querySelector('#mobileOverlay').style.display) {
  99.                 scrolling = setTimeout(function () {
  100.                     document.querySelector('#mobileOverlay_open').classList.remove('mobileOverlay_scrolling')
  101.                 }, 1000)
  102.                 document.querySelector('#mobileOverlay_open').classList.add('mobileOverlay_scrolling')
  103.             } else {
  104.                 e.preventDefault()
  105.                 window.scrollTo(0, 0)
  106.             }
  107.         })
  108.     }
  109.  
  110.     if (mobileOverlayDebug) {
  111.         window.mobileOverlay()
  112.     }
  113. </script>
  114.  
  115. <style>
  116.     body {
  117.         background-color: #272727;
  118.         margin: 0 auto;
  119.         padding: 0;
  120.         color: white;
  121.     }
  122.  
  123.     #mobileOverlay {
  124.         position: fixed;
  125.         top: 0;
  126.         bottom: 0;
  127.         width: 100%;
  128.         margin: 0;
  129.         padding: 0;
  130.         z-index: 9999;
  131.         background-color: rgba(0, 0, 0, 0.75);
  132.         display: none;
  133.         align-content: center;
  134.     }
  135.  
  136.     #mobileOverlay_open {
  137.         display: none;
  138.     }
  139.  
  140.     .mobileOverlay_icon {
  141.         position: fixed;
  142.         bottom: 0.5em;
  143.         right: 0.5em;
  144.         cursor: pointer;
  145.         font-size: 3em;
  146.         color: black;
  147.         display: none;
  148.         width: 2.1em;
  149.         height: 2.1em;
  150.         min-height: 2.1em;
  151.         max-height: 2.1em;
  152.         justify-content: center;
  153.         align-content: center;
  154.         align-items: center;
  155.         justify-items: center;
  156.         background-color: white;
  157.         border-radius: 5em;
  158.         transition: right .5s;
  159.         z-index: 9998;
  160.         -webkit-box-shadow: 0 0 40px 4px rgba(97, 97, 97, 0.54);
  161.         box-shadow: 0 0 40px 4px rgba(97, 97, 97, 0.54);
  162.     }
  163.  
  164.     .mobileOverlay_icon:hover {
  165.         color: grey;
  166.     }
  167.  
  168.     .mobileOverlay_scrolling {
  169.         right: -300px;
  170.         transition: right .5s;
  171.     }
  172.  
  173.     .mobileOverlay_mainContainer {
  174.         width: 30em;
  175.         margin: auto;
  176.         display: flex;
  177.         flex-wrap: wrap;
  178.         align-content: center;
  179.         justify-content: center;
  180.     }
  181.  
  182.     .mobileOverlay_container {
  183.         min-width: 10em;
  184.         height: 10em;
  185.         margin: 10px;
  186.         background-color: white;
  187.         display: none;
  188.         flex-wrap: wrap;
  189.         cursor: pointer;
  190.         align-content: center;
  191.         justify-content: center;
  192.         color: black;
  193.     }
  194.  
  195.     .facebook {
  196.         color: white;
  197.         background-color: #4267B2;
  198.     }
  199.  
  200.     .twitter {
  201.         background-color: #1DA1F2;
  202.         color: white;
  203.     }
  204.  
  205.     .instagram {
  206.         color: white;
  207.         background-color: #da3076;
  208.     }
  209.  
  210.     .linkedin {
  211.         color: white;
  212.         background-color: #2867B2;
  213.     }
  214.  
  215.     .gmap {
  216.         color: #DB4437;
  217.     }
  218. </style>
  219.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement