课堂笔记;
(一)实现侧边栏的动态效果,开始侧边栏是不显示的,点击侧边栏菜单显示侧边栏,并呈现遮罩效果。点击遮罩,隐藏侧边栏。
1、在html中建立遮罩的div
- <div class="mask"></div>
- /*点击侧边栏时,变暗的效果*/
- .mask{
- display: none;
- position: fixed;
- top:0;
- bottom:0;
- left:0;
- right:0;
- background: rgba(0,0,0,0.3);
- }
- #sidebar{
- position: fixed;
- top:0;
- /*right:0;*/
- right:-300px;/*侧边栏隐藏在屏幕右边*/
- bottom:0;
- width:300px;
- background: #333;
- padding:20px 0;
- transition:right 0.5s;
- }
- ;$(function () {
- 'use strict';
- var sidebar = $('#sidebar'), /*选择侧栏*/
- mask = $('.mask'),
- sidebar_trigger = $('#sidebar_trigger');
- function showSideBar() {
- mask.fadeIn();
- sidebar.css('right', 0);
- }
- function hideSideBar() {
- mask.fadeOut();
- sidebar.css('right', -sidebar.width());
- }
- sidebar_trigger.on('click',showSideBar);
- mask.on('click', hideSideBar);
- })
fadeOut() 方法使用淡出效果来隐藏被选元素,假如该元素是隐藏的。
(二 )侧边栏的滑动效果还有另外的实现方式
1、css
- /*侧栏*/
- #sidebar{
- position: fixed;
- top:0;
- /*right:-300px;*/
- right:0;
- -webkit-transform: translate(300px, 0);
- -moz-transform: translate(300px, 0);
- -ms-transform: translate(300px, 0);
- -o-transform: translate(300px, 0);
- transform: translate(300px, 0);
- bottom:0;
- width:300px;
- background: #333;
- padding:20px 0;
- transition:right 0.5s;
- }
translate(x,y) :通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数。
- function showSideBar() {//显示侧栏
- mask.fadeIn();//显示mask
- sidebar.css('transform','translate(0,0)');//调整侧栏相关的css
- }
- function hideSideBar() {//隐藏侧栏
- mask.fadeOut();//隐藏mask
- sidebar.css('transform', 'translate('+sidebar.width()+'px'+',0)');//调整侧栏相关的css
- }