「MediaWiki:Mobile.js」の版間の差分

提供:パルワールド 攻略Wiki
移動先:案内検索
編集の要約なし
タグ: 差し戻し済み モバイル編集 モバイルウェブ編集
編集の要約なし
タグ: 差し戻し済み モバイル編集 モバイルウェブ編集
48行目: 48行目:


/* メニューバー */
/* メニューバー */
/*メニューバー*/
var lastScrollTop = 0;
var lastScrollTop = 0;
var menuBar = document.getElementById("mobileMenuBar");
var menuBar = document.getElementById("mobileMenuBar");
var headerMenu = document.getElementById("headerMenu"); // 本来のheadermenuのIDを仮定しています


// 初期状態でmobileMenuBarを非表示にする
menuBar.style.display = 'none';


window.addEventListener("scroll", function() {
window.addEventListener("scroll", function(){
    var currentScroll = window.pageYOffset || document.documentElement.scrollTop;
  var currentScroll = window.pageYOffset || document.documentElement.scrollTop;


    // headerMenuが画面から消えたかどうかをチェック
  if (currentScroll > lastScrollTop){
    var headerMenuBottom = headerMenu.offsetTop + headerMenu.offsetHeight;
      // 下にスクロールしているとき
    var isHeaderMenuVisible = headerMenuBottom > currentScroll;
      if (currentScroll > 100) {
 
      menuBar.style.display = 'block';
    if (currentScroll > lastScrollTop) {
      menuBar.style.position = 'fixed'; // スクロール時には固定
        // 下にスクロールしているとき
      menuBar.style.top = '0px';
        if (!isHeaderMenuVisible) {
      }
            // headerMenuが見えなくなったらmobileMenuBarを表示
  } else {
            menuBar.style.display = 'block';
      // 上にスクロールしているとき
            menuBar.style.position = 'fixed';
      if (currentScroll <= 0) {
            menuBar.style.top = '0px';
          // ページの一番上にいるとき
        }
          menuBar.style.display = 'none';
    } else {
      } else if (currentScroll > 100) {
        // 上にスクロールしているとき
          menuBar.style.display = 'block';
        if (isHeaderMenuVisible) {
          menuBar.style.position = 'fixed'; // スクロール時には固定
            // headerMenuが見える場合はmobileMenuBarを非表示
          menuBar.style.top = '0px';
            menuBar.style.display = 'none';
      }
        }
  }
    }
  lastScrollTop = currentScroll <= 0 ? 0 : currentScroll; // ネガティブな値を防ぐ
    lastScrollTop = currentScroll <= 0 ? 0 : currentScroll;
}, false);
}, false);
// TOPへ

2024年1月15日 (月) 22:46時点における版

//トップに戻るボタン
$(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へ
Copyright © 2003-2024 ヘイグ All Rights Reserved.