[jQuery] Slideout.js: スライドするナビゲーションメニュー

横からスライド表示するナビゲーションメニュー。

JavaScript 単体で動作。
blog の分類上、jQuery に入れておく。

Contents

Browser support

公式より。

  • Chrome (IOS, Android, desktop)
  • Firefox (Android, desktop)
  • Safari (IOS, Android, desktop)
  • Opera (desktop)
  • IE 10+ (desktop)

Installation

JavaScript 単体で動作可能。

% npm install slideout --save

例えば Sprockets の append_path に node_modules を追加して require する場合はこうなる。

//= require slideout/dist/slideout.js

Usage

ちょっと動かしたメモ。

JavaScript

var slideout = new Slideout({
  'panel': document.getElementById('panel'),
  'menu': document.getElementById('menu'),
  'padding': 256,
  'tolerance': 70
});
// Toggle button
document.querySelector('.toggle-button').addEventListener('click', function() {
  slideout.toggle();
});

CSS

.slideout-menu {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 0;
  width: 256px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: none;
}
.slideout-panel {
  position: relative;
  z-index: 1;
  will-change: transform;
}
.slideout-open,
.slideout-open body,
.slideout-open .slideout-panel {
  overflow: hidden;
}
.slideout-open .slideout-menu {
  display: block;
}

Sample

サンプルは、以下の通り。

See the Pen Slideout.js sample code by DriftwoodJP (@DriftwoodJP) on CodePen.