Difference between revisions of "MediaWiki:Mobile.js"
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
/* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */ | /* Il codice JavaScript inserito qui viene caricato da ciascuna pagina, per tutti gli utenti. */ | ||
mw.loader.using('mobile.site.styles'); | |||
window.onscroll = function() {scrollFunction()}; | window.onscroll = function() {scrollFunction()}; | ||
Line 86: | Line 88: | ||
} | } | ||
}, 100); // check every 100ms | }, 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); | |||
} |
Latest revision as of 12:00, 4 March 2024
/* 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);
}