「MediaWiki:Mobile.js」の版間の差分
提供:パルワールド 攻略Wiki
編集の要約なし タグ: モバイル編集 モバイルウェブ編集 |
編集の要約なし タグ: 差し戻し済み モバイル編集 モバイルウェブ編集 |
||
26行目: | 26行目: | ||
resetInactivityTimer(); | resetInactivityTimer(); | ||
}); | }); | ||
//Menu | |||
/*mobilemenu*/ | |||
function isMobileDevice() { | |||
const userAgent = navigator.userAgent; | |||
const screenWidth = window.innerWidth; | |||
// モバイルデバイスのユーザーエージェントをチェック(iPadを除外) | |||
const isMobileUA = /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) && !/iPad/i.test(userAgent); | |||
// 画面サイズが特定の最大幅(例えば768px)以下かどうかをチェック | |||
const isSmallScreen = screenWidth <= 768; | |||
// 両方の条件を満たす場合にtrueを返す | |||
return isMobileUA && isSmallScreen; | |||
} | |||
window.onload = function() { | |||
if (isMobileDevice()) { | |||
document.getElementById('mobileMenuBar').style.display = 'block'; | |||
} | |||
}; | |||
/*メニューバー*/ | |||
/*メニューバー*/ | |||
var lastScrollTop = 0; | |||
var menuBar = document.getElementById("mobileMenuBar"); | |||
window.addEventListener("scroll", function(){ | |||
var currentScroll = window.pageYOffset || document.documentElement.scrollTop; | |||
if (currentScroll > lastScrollTop){ | |||
// 下にスクロールしているとき | |||
if (currentScroll > 100) { | |||
menuBar.style.display = 'block'; | |||
menuBar.style.position = 'fixed'; // スクロール時には固定 | |||
menuBar.style.top = '0px'; | |||
} | |||
} else { | |||
// 上にスクロールしているとき | |||
if (currentScroll <= 0) { | |||
// ページの一番上にいるとき | |||
menuBar.style.display = 'none'; | |||
} else if (currentScroll > 100) { | |||
menuBar.style.display = 'block'; | |||
menuBar.style.position = 'fixed'; // スクロール時には固定 | |||
menuBar.style.top = '0px'; | |||
} | |||
} | |||
lastScrollTop = currentScroll <= 0 ? 0 : currentScroll; // ネガティブな値を防ぐ | |||
}, false); | |||
// TOPへ |
2024年1月15日 (月) 22:02時点における版
//トップに戻るボタン
$(document).ready(function() {
var backToTopButton = $('<div/>', {
id: 'back-to-top',
html: '<i class="fa-solid fa-chevron-up"></i>',
click: function() {
window.scrollTo(0, 0);
}
}).appendTo('body');
backToTopButton.show();
var inactivityTimer;
function resetInactivityTimer() {
backToTopButton.show();
clearTimeout(inactivityTimer);
inactivityTimer = setTimeout(function() {
backToTopButton.fadeOut();
}, 2000);
}
$(window).scroll(resetInactivityTimer);
$(window).mousemove(resetInactivityTimer);
resetInactivityTimer();
});
//Menu
/*mobilemenu*/
function isMobileDevice() {
const userAgent = navigator.userAgent;
const screenWidth = window.innerWidth;
// モバイルデバイスのユーザーエージェントをチェック(iPadを除外)
const isMobileUA = /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) && !/iPad/i.test(userAgent);
// 画面サイズが特定の最大幅(例えば768px)以下かどうかをチェック
const isSmallScreen = screenWidth <= 768;
// 両方の条件を満たす場合にtrueを返す
return isMobileUA && isSmallScreen;
}
window.onload = function() {
if (isMobileDevice()) {
document.getElementById('mobileMenuBar').style.display = 'block';
}
};
/*メニューバー*/
/*メニューバー*/
var lastScrollTop = 0;
var menuBar = document.getElementById("mobileMenuBar");
window.addEventListener("scroll", function(){
var currentScroll = window.pageYOffset || document.documentElement.scrollTop;
if (currentScroll > lastScrollTop){
// 下にスクロールしているとき
if (currentScroll > 100) {
menuBar.style.display = 'block';
menuBar.style.position = 'fixed'; // スクロール時には固定
menuBar.style.top = '0px';
}
} else {
// 上にスクロールしているとき
if (currentScroll <= 0) {
// ページの一番上にいるとき
menuBar.style.display = 'none';
} else if (currentScroll > 100) {
menuBar.style.display = 'block';
menuBar.style.position = 'fixed'; // スクロール時には固定
menuBar.style.top = '0px';
}
}
lastScrollTop = currentScroll <= 0 ? 0 : currentScroll; // ネガティブな値を防ぐ
}, false);
// TOPへ