侧边栏推送内容
Sidebar Push Content
我一直在尝试在触发菜单切换时将我的内容 div 移动到左侧,理想情况下没有跳转而是推送转换。内容 div 应该只滑到打开侧边栏的宽度。下面的代码使侧边栏图标始终可见,这是我想要的,但覆盖了内容 div。我需要向 JQuery 函数和 CSS 添加什么才能实现此目的?
jQuery(function($) {
$("#side").click(function() {
$('#slidable').toggleClass("open");
});
})
#side {
position:absolute;
right:100%;
width: 50px;
height: 50px;
z-index: 1000000;
color:black;
}
#slidable {
position: fixed;
top:0;
height: 100vh;
background: black;
width: 200px;
left: 100%;
transition: 0.4s;
z-index: 1000000;
color:black;
text-align:center;
font-size:25px;
font-weight: 300;
color:white;
}
#slidable.open{
left: calc(100% - 200px);
}
.fa {
font-size:30px!;
margin-top:25px;
color:black;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="slidable">
<div id="side" class="icon">
<i class="fa fa-bars"></i>
</div>
<div>
<p>Link 1</p>
<p>Link 2</p>
<p>Link 3</p>
<p>Link 4</p>
<p>Link 5</p>
</div>
</div>
<div id="content">
<p>hallo</p>
</div>
我确实添加了这个:
.content {
position: relative;
left: 0;
transition: left 0.4s;
}
.slidable.open + .content{
left: -200px;
}
而且我确实重构为使用 CSS 类 作为样式表中的选择器。
jQuery(function($) {
$("#side").click(function() {
$('#slidable').toggleClass("open");
});
})
.side {
position: absolute;
right: 100%;
width: 50px;
height: 50px;
z-index: 1000000;
color: black;
}
.slidable {
position: fixed;
top: 0;
height: 100vh;
background: black;
width: 200px;
right: 0;
transition: 0.4s;
z-index: 1000000;
color: black;
text-align: center;
font-size: 25px;
font-weight: 300;
color: white;
}
.slidable.open{
right: 200px;
}
.content {
position: relative;
left: 0;
transition: left 0.4s;
}
.slidable.open + .content{
left: -200px;
}
.fa {
font-size: 30px;
margin-top: 25px;
color: black;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="slidable" class="slidable">
<div id="side" class="side icon">
<i class="fa fa-bars"></i>
</div>
<div>
<p>Link 1</p>
<p>Link 2</p>
<p>Link 3</p>
<p>Link 4</p>
<p>Link 5</p>
</div>
</div>
<div id="content" class="content">
<p>hallo, give me just a bit more content here</p>
</div>
我一直在尝试在触发菜单切换时将我的内容 div 移动到左侧,理想情况下没有跳转而是推送转换。内容 div 应该只滑到打开侧边栏的宽度。下面的代码使侧边栏图标始终可见,这是我想要的,但覆盖了内容 div。我需要向 JQuery 函数和 CSS 添加什么才能实现此目的?
jQuery(function($) {
$("#side").click(function() {
$('#slidable').toggleClass("open");
});
})
#side {
position:absolute;
right:100%;
width: 50px;
height: 50px;
z-index: 1000000;
color:black;
}
#slidable {
position: fixed;
top:0;
height: 100vh;
background: black;
width: 200px;
left: 100%;
transition: 0.4s;
z-index: 1000000;
color:black;
text-align:center;
font-size:25px;
font-weight: 300;
color:white;
}
#slidable.open{
left: calc(100% - 200px);
}
.fa {
font-size:30px!;
margin-top:25px;
color:black;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="slidable">
<div id="side" class="icon">
<i class="fa fa-bars"></i>
</div>
<div>
<p>Link 1</p>
<p>Link 2</p>
<p>Link 3</p>
<p>Link 4</p>
<p>Link 5</p>
</div>
</div>
<div id="content">
<p>hallo</p>
</div>
我确实添加了这个:
.content {
position: relative;
left: 0;
transition: left 0.4s;
}
.slidable.open + .content{
left: -200px;
}
而且我确实重构为使用 CSS 类 作为样式表中的选择器。
jQuery(function($) {
$("#side").click(function() {
$('#slidable').toggleClass("open");
});
})
.side {
position: absolute;
right: 100%;
width: 50px;
height: 50px;
z-index: 1000000;
color: black;
}
.slidable {
position: fixed;
top: 0;
height: 100vh;
background: black;
width: 200px;
right: 0;
transition: 0.4s;
z-index: 1000000;
color: black;
text-align: center;
font-size: 25px;
font-weight: 300;
color: white;
}
.slidable.open{
right: 200px;
}
.content {
position: relative;
left: 0;
transition: left 0.4s;
}
.slidable.open + .content{
left: -200px;
}
.fa {
font-size: 30px;
margin-top: 25px;
color: black;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="slidable" class="slidable">
<div id="side" class="side icon">
<i class="fa fa-bars"></i>
</div>
<div>
<p>Link 1</p>
<p>Link 2</p>
<p>Link 3</p>
<p>Link 4</p>
<p>Link 5</p>
</div>
</div>
<div id="content" class="content">
<p>hallo, give me just a bit more content here</p>
</div>