MediaWiki:Mobile.js

Revision as of 12:00, 4 March 2024 by Lavazza (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Go to top

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */
mw.loader.using('mobile.site.styles');

window.onscroll = function() {scrollFunction()};

function scrollFunction() {
	if(document.getElementById("myBtn")!=null){
    if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
      if(document.getElementById("myBtn").style!=null){
        document.getElementById("myBtn").style.display = "block";
        document.getElementById("myBtn").onclick =  function() {topFunction();};
      }
    } else {
      if(document.getElementById("myBtn").style!=null){
        document.getElementById("myBtn").style.display = "none";
      }
    }
    }
}

function topFunction() {
	console.log("topFunction");
    document.body.scrollTop = 0; // For Safari
    document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
}
/* All JavaScript here will be loaded for users of the mobile site */

/* https://www.mediawiki.org/wiki/Topic:Vqy1kx6q4e0bzvyb */

/* Add to MediaWiki:Mobile.js for custom Mobile Menu links 
  for MW-1.34.2 with MobileFrontend and MinervaNeue 
  Just replace span text and href to add links */
  
var timer = setInterval(function() {
       if ($('.menu ul:first').length) {
           console.log("mobile menu exists");
           clearInterval(timer);
           $('.menu ul:first').after(
                 '<ul class="level1"> \
                      <li> \
                      <a href="#" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-watchlist"> \
                      <span>Masticationpedia ▼</span> \
                      </a> \
                      </li> \
                      <ul class ="level2"> \
                           <li> \
                           <a href="https://www.masticationpedia.org/" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Main website</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="https://www.masticationpedia.org/about.php" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>About us</span> \
                           </a> \
                           </li> \
                           <li> \
                           <a href="https://www.masticationpedia.org/scientific_community.php" \
                                 class="mw-ui-icon mw-ui-icon-before"> \
                           <span>Scientific Community</span> \
                           </a> \
                           </li> \
                      </ul> \
                 </ul> \
                 <ul> \
                      <li> \
                      <a href="/wiki/Introduction" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-watchlist"> \
                      <span>➜ Introduction</span> \
                      </a> \
                      </li> \
                 </ul> \
                 <ul> \
                      <li> \
                      <a href="/wiki/Masticationpedia:Donate" \
                            class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-watchlist"> \
                      <span>Donate <span style="color: red">♥</span> now</span> \
                      </a> \
                      </li> \
                 </ul>'
            );
            $(".menu").find(".level2").hide(); // hide level2 until level1 is clicked
            $(".level1").click(function(event){ 
                 $(this).find(".level2").slideToggle(500);
            }); // if level1 is clicked, dropdown level2
       }
  }, 100); // check every 100ms

// ========================== Integrazione pagine Wix 2024 ==========================

/* ============= Animazioni homepage ============= */

function handleEntries(entries) {
    for (var i = 0; i < entries.length; i++) {
        var entry = entries[i];
        console.log(entry);
        if (entry.isIntersecting) {
            addClass(entry.target, 'fade-in-on-intersection');
        } else {
            removeClass(entry.target, 'fade-in-on-intersection');
        }
    }
}

function addClass(element, className) {
    if (element.className.indexOf(className) === -1) {
        element.className += ' ' + className;
    }
}

function removeClass(element, className) {
    element.className = element.className.replace(new RegExp('(?:^|\\s)' + className + '(?!\\S)'), '');
}

var observer = new IntersectionObserver(handleEntries);

var hiddenElements = document.querySelectorAll('.hidden-except-on-intersection');
for (var i = 0; i < hiddenElements.length; i++) {
    observer.observe(hiddenElements[i]);
}

/* ============= Template:Main menu ============= */

function openMenu() {
    console.log('Trigger clicked!');
    document.getElementById('masticationpedia-main-menu').style.display = 'block';
    document.getElementById('main-menu-close').style.display = 'flex';
    document.getElementById('main-menu-open').style.display = 'none';
}
var openMenuButton = document.getElementById('main-menu-open');
if (openMenuButton) {
    openMenuButton.addEventListener('click', openMenu);
}

function closeMenu() {
    console.log('Trigger clicked!');
    document.getElementById('masticationpedia-main-menu').style.display = 'none';
    document.getElementById('main-menu-close').style.display = 'none';
    document.getElementById('main-menu-open').style.display = 'flex';
}
var closeMenuButton = document.getElementById('main-menu-close');
if (closeMenuButton) {
    closeMenuButton.addEventListener('click', closeMenu);
}