创建可折叠侧边菜单
Creating Collapsible Side Menu
我试图达到的效果是:https://gesso-theme.myshopify.com/
当您单击左上角的可折叠菜单时。
我坚持并试图实现的事情是:
1.) 如何使菜单在菜单移入时似乎将正文内容向右移动?(这并不重要,但很高兴知道)
2.) 为什么隐藏我身体内容的影子div 不能完全进入浏览器的宽度和高度?
3.)我希望无论身体中有什么内容都能做到这一点。
4.)我想在没有插件或引导的情况下实现这一目标,只需javascript,jquery,css和html,这样我就可以真正理解发生了什么。
$(".show-side-menu").click(function(){
$(".container").toggle();
$(".darkness").toggle();
});
*{
margin:0;
padding:0;
}
html, body{
height: 100%;
margin: 0;
}
.container{
height:100%;
width:200px;
background:white;
position:absolute;
top:0;
bottom:0;
display:none;
}
a.show-side-menu{
background:blue;
color:white;
font-size:20px;
z-index:10;
position:absolute;
}
.random-content{
height:500px;
width:500px;
margin:10px;
background:purple;
}
.darkness{
background:rgba(136, 114, 114, 0.65);
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" class="show-side-menu">Show</a>
<div class="darkness"></div>
<div class="container">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
使用最简单的 html 和 css 这就是我能给你的
$(function() {
$(".ui-menu-toggle").click(function() {
$(".ui-menu").toggleClass("open");
console.info($(".ui-menu"));
});
});
.ui-menu {
position: absolute;
bottom: 0;
left: 0;
right: 0;
top: 0;
z-index: 1001;
}
.ui-menu > .ui-menu-overlay {
opacity: 0;
height: 100%;
width: 100%;
z-index: 0;
position: fixed;
background: #000;
transition-property: opacity;
transition-duration: 0.2s;
}
.ui-menu > .ui-menu-container {
background-color: #fff;
box-shadow: 0 -1px 24px rgba(0, 0, 0, 0.4);
height: 100%;
left: -340px;
position: absolute;
width: 320px;
transition-property: transform;
transition-duration: 0.3s;
}
.ui-menu.open {
display: block;
}
.ui-menu.open > .ui-menu-overlay {
opacity: 0.3;
}
.ui-menu.open > .ui-menu-container {
transform: translateX(340px);
}
.ui-body {
background: pink;
position: absolute;
bottom: 0;
left: 0;
right: 0;
top: 0;
transition-property: transform;
transition-duration: 0.3s;
}
.ui-menu.open > .ui-body {
transform: translateX(320px);
z-index: -1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="ui-menu">
<div class="ui-menu-overlay"></div>
<div class="ui-menu-container">
<a href="#" class="ui-menu-toggle">close menu</a>
menu content
</div>
<div class="ui-body">
<a href="#" class="ui-menu-toggle">open menu</a>
body content
</div>
</div>
-
用于变速车身jquery
$('.darkness').toggle(function () { $(".random-content").addClass("moveLeft"); }, function () { $(".random-content").removeClass("moveLeft"); });
.css
.random-content.moveLeft { transform: translateX(200px); }
-
要覆盖整个浏览器窗口,请将 .dark 的 css 从位置:绝对; 到位置:固定;
它应该解决您的问题。
你可以做这样的事情: http://codepen.io/kevinkl3/pen/ZQoNxm
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div class="menu">
<h2 align="center">Menu</h2>
</div>
<div class="container">
<a href="#" class="show-side-menu">Show</a>
<div class="random-content">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
<div class="darkness"></div>
</div>
</div>
.CSS:
body{
font-family: sans-serif;
}
html, body{
margin: 0px;
}
.menu{
height:100%;
width:240px;
background:white;
position:fixed;
left: 0px;
top:0px;
bottom:0px;
}
a.show-side-menu{
background:blue;
color:white;
font-size:20px;
z-index:10;
position:fixed;
top:5px;
left:5px;
transition: all 0.35s;
}
.wrapper.menu-open a.show-side-menu{
left: 245px;
}
.random-content{
height:500px;
width:500px;
margin:10px;
background:purple;
}
.darkness{
background:rgba(0, 0, 0, 0.8);
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
opacity: 0;
transition: all 0.35s;
pointer-events:none;
}
.wrapper .container{
position:relative;
margin-left:0px;
transition: all 0.35s;
padding-top:20px;
}
.wrapper.menu-open .darkness{
opacity: 1;
}
.wrapper.menu-open .container{
margin-left:240px;
}
.wrapper:not(.menu-open) .menu{
margin-left:-240px;
}
.wrapper .menu{
transition: all 0.35s;
margin-left:0px;
z-index:9999;
}
.JS:
$(".show-side-menu").click(function(){
var wrapper = $(".wrapper");
wrapper.toggleClass('menu-open');
if(!wrapper.hasClass('menu-open'))
$(".show-side-menu").text('show')
else
$(".show-side-menu").text('hide')
});
>添加一个js文件到jquery.transit.min.js
更改Function
$(document).ready(function () {
$(document).off('click', '.show-side-menu');
$(document).on('click', '.show-side-menu', function () {
$(this).addClass('active');
$(this).html('Hide');
$(this).transition({ x: '200px' });
$(this).removeClass('show-side-menu');
$(".container").animate({ left: 0 });
$(".darkness").show();
$(".random-content").transition({ x: '200px' });
});
$(document).off('click', '.active');
$(document).on('click', '.active', function () {
$(this).removeClass('active');
$(this).html('Show');
$(this).transition({ x: '0px' });
$(this).addClass('show-side-menu');
$(".container").animate({ left: "-=200px" });
$(".random-content").transition({ x: '0px' });
$(".darkness").hide();
});
});
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
margin: 0;
}
.container {
height: 100%;
width: 200px;
background: white;
position: absolute;
top: 0;
bottom: 0;
left: -200px;
z-index:9;
}
a.show-side-menu, a.active {
background: blue;
color: white;
font-size: 20px;
z-index: 10;
position: absolute;
}
a.active {
background: red;
}
.random-content {
height: 500px;
width: 500px;
/*margin: 10px;*/
background: purple;
}
.darkness {
background: rgba(136, 114, 114, 0.65);
position: fixed;
height: 100%;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: none;
z-index:5;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ricostacruz.com/jquery.transit/jquery.transit.min.js"></script>
<a href="#" class="show-side-menu">Show</a>
<div class="darkness"></div>
<div class="container">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
<div class="random-content">
</div>
相关文章:
- 只使用CSS创建可折叠菜单或spry菜单
- 可折叠侧边栏/导航菜单
- 引导可折叠菜单不起作用
- Twitter Bootstrap 在下拉菜单打开时关闭可折叠菜单
- (网页)JavaScript 可折叠菜单错误
- 创建可折叠侧边菜单
- 多级可折叠引导侧导航菜单出现问题
- 对可折叠菜单中根链接的效果/操作不活动 - 只是效果 - jQuery
- 如何更改可折叠菜单的图像
- 可折叠菜单未保持打开状态
- 可折叠菜单是't工作-参数'边栏控制器'不是函数,未定义
- 带子菜单的类似Mac的可折叠边栏导航
- 如何用Bootstrap获得一个漂亮的可折叠侧边栏菜单(另一个帖子)
- 由外部按钮控制的可折叠菜单
- 可折叠菜单更改元素的位置
- 可折叠面板和下拉菜单的动态定位
- 为什么当我点击可折叠菜单时,它没有展开?
- 移动设备上的可折叠菜单
- 在可折叠菜单中更改父LI的样式
- 可折叠菜单javascript问题