Slideout.js移动端触摸滑动侧边菜单插件
Slideout.js是一款轻量级的插件,特别适合制作移动端网页APP侧边栏的一种动画效果脚本,同时能支持点击和触摸时间,它没有依赖,自由搭配简单的标记,支持原生的滚动,您可以轻松地定制它。它支持不同的CSS3转换和过渡。
效果为:

参数说明:
'menu':document.getElementById('menu'), //侧栏菜单区域
'panel':document.getElementById('main'), //body中的正文
'side':'right', //右边侧栏滑动,默认是左侧
'padding':256, //滑动的总体宽度多宽
'tolerance':70
'duration':300
'fx':ease
特点
- 完全免费使用,无需任何顾及
- 使用简单的HTML代码实现
- 支持本地滚动事件
- 简单易于定制
- 支持CSS的transforms和transitions
- 轻量级的插件,压缩版本仅仅4KB
兼容性
- Chrome (IOS, Android, desktop)
- Firefox (Android, desktop)
- Safari (IOS, Android, desktop)
- Opera (desktop)
- IE 10+ (desktop)
安装方法
1、通过软件包安装
$ npm install slideout $ bower install https://github.com/mango/slideout.git $ component install mango/slideout
2、你可以直接slideout.js访问的Github地址,下载得到slideout.js的源文件,然后在页面中引入
<script src="js/slideout.js"></script>
3、通过CDN
https://www.bootcdn.cn/slideout
使用方法
1、首先在你的网页中需要有一个菜单 (“#menu”)和内容 (“#panel”) 容器
<nav id="menu"> <h2>Menu</h2> </nav> <main id="panel"> <header> <button class="toggle-button">☰</button> <h2>Panel</h2> </header> </main>
2、添加一些样式到你样式表中,例如下面的代码
body { width: 100%; height: 100%; } .slideout-menu { position: fixed; top: 0; bottom: 0; width: 256px; min-height: 100vh; overflow-y: scroll; -webkit-overflow-scrolling: touch; z-index: 0; display: none; } .slideout-menu-left { left: 0; } .slideout-menu-right { right: 0; } .slideout-panel { position: relative; z-index: 1; will-change: transform; background-color: #FFF; /* A background-color is required */ min-height: 100vh; } .slideout-open, .slideout-open body, .slideout-open .slideout-panel { overflow: hidden; } .slideout-open .slideout-menu { display: block; }
注意:插件不包含任何样式文件,这些你需要自己创建,不过插件提供了一些可选的样式,你可以试着修改这些样式,来满足你项目的要求。
3、初始化插件,然后传递插件的可选参数即可
<script src="dist/slideout.min.js"></script> <script> 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(); }); </script>
git下载地址为:https://github.com/mango/slideout
Demo: https://codepen.io/pazguille/pen/mEdQvX
滑动时内容部分有黑色不透明图层效果
<nav id="menu"> <header> <h2>Menu</h2> </header> </nav> <main id="panel"> <header> <h2>Panel</h2> </header> <div id="carousel" data-slideout-ignore> <h2>Carousel</h2> ... </div> </main>
.panel:before { content: ''; display: block; background-color: rgba(0,0,0,0); transition: background-color 0.5s ease-in-out; } .panel-open:before { position: absolute; top: 0; bottom: 0; width: 100%; background-color: rgba(0,0,0,.5); z-index: 99; }
function close(eve) { eve.preventDefault(); slideout.close(); } slideout .on('beforeopen', function() { this.panel.classList.add('panel-open'); }) .on('open', function() { this.panel.addEventListener('click', close); }) .on('beforeclose', function() { this.panel.classList.remove('panel-open'); this.panel.removeEventListener('click', close); });

浙公网安备 33010602011771号