我目前正在構建一個響應式網站,我需要隱藏的div,單擊左側欄中的按鈕後會從左側滑入。一旦按下此按鈕,側欄會從滑動內容中滑過(從左側滑動),並覆蓋現有內容或將內容推向右側。將內容從左側滑入,疊加現有內容並跨側邊欄
這是問題所在,因爲它是一個響應網站。當新div滑入時,我希望'siteInnerLeft'div中的側邊欄被推到頁面的右側。因此,在內容滑過之前的內容之後,不再可見,直到滑動內容已經滑回出。
這裏是我的jsfiddle - http://jsfiddle.net/76xvB/2/
Hopefuly你可以看到我想要acheive。我已經管理好它的工作,直到一個點,但我的問題是滑動的內容是固定的,我不希望它被修復,因爲有更多的內容要查看,這將刪除用戶的滾動能力。
我知道'position fixed'將元素從文檔流中取出。那麼這是否會阻止我實現我想要的?如果是這樣,是否有另一種方式來做到這一點。
注意:真正的網站將有百分比而不是像素,因爲它是響應式的,這是一個細分版本。
我當前的代碼:
HTML
<div id="siteWrapper">
<div id="siteInnerLeft">
<div id="homeNavLink">
<p>Click me</p>
</div>
</div>
<div id="siteInnerRight">
<div class="pushmenu-push">
<p>Current page content</p>
</div>
<div class="pushmenu pushmenu-left">
<p>Content to slide in from the left</p>
</div>
<div id="footer">
<p>This is my footer and this content always needs to be showing and can't be hidden behind the fixed div</p>
</div>
</div>
</div>
CSS
#siteWrapper{
max-width:500px;
margin:0 auto;
width:100%;
}
#siteInnerLeft{
background-color:green;
width:100px;
float:left;
position:fixed; /* Sidebar that needs to be fixed*/
}
#siteInnerRight{
width: 400px;
background-color:yellow;
float:left;
margin-left: 100px; /*Compensates for fixed header width */
}
.pushmenu {
background: #e9e8e0;
font-family: georgia,times news roman, times, serif;
position: fixed;
width:400px;
height: 100%;
top: 0;
z-index: 1000;
}
.pushmenu-push{
left: 0;
overflow-x: hidden;
position: relative;
width: 100%;
}
.pushmenu-left{
left:-400px;
}
.pushmenu-left.pushmenu-open {
left: 0px;
/* box-shadow: 5px 5px 5px #d9d8d0;*/
}
.pushmenu, .pushmenu-push {
transition: all 0.3s ease 0s;
}
#footer{
width:100%;
clear:both;
background-color:red;
}
jQuery的
$menuLeft = $('.pushmenu-left');
$nav_list = $('#homeNavLink');
$nav_list.click(function() {
$(this).toggleClass('active');
$('.pushmenu-push').toggleClass('pushmenu-push-toright');
$menuLeft.toggleClass('pushmenu-open');
});
任何建議將不勝感激。
謝謝。
只是給大家一個提示,JavaScript中的最後一行應該切換類pushmenu-left而不是pushmenu-打開 – isick
jsFiddle示例在FF或Safari上不適用於我... –