2016-06-21 62 views
0

在我們的頁面上,我們有一個position: fixed標題,您在滾動時會停留在頁面頂部。我們的產品團隊希望在此固定元素和頂部導航欄之間留有空白/餘量。只顯示固定元素上方的背景圖像/顏色

但是,一旦我們添加了這個空白,當用戶滾動時,他們就可以看到滾動離開固定標題的元素。我創建了一個的jsfiddle,藉以說明問題:

https://jsfiddle.net/9n50o567/

如果向下滾動,灰色的部分出現在淡藍色的頭球高出,而你正在滾動。

是否有反正隱藏用戶?因此,在固定元素上方顯示的背景顏色或背景圖像(如果有的話)會因用戶而異。基本上掩蓋元素?

我們已經嘗試創建一個div,它與身體的背景顏色具有相同的顏色,但是這只是在背景圖像時不起作用。此外,我們嘗試使用jQuery來檢測該部分中存在的元素,並在滾動時隱藏它們,但如果元素大於標題,它將過早消失。

我不確定這是否有意義,所以如果您有任何問題,請不要猶豫,以下問。

回答

4

這並不完美,當然它適用於顏色,但背景圖像可能有點困難。

<body>上定位的僞元素繼承體bg的顏色似乎工作。

body { 
 
    background: red; 
 
    position: relative; 
 
} 
 
body::before { 
 
    content: ''; 
 
    height: 25px; 
 
    display: block; 
 
    width: 100%; 
 
    background: inherit; 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
} 
 
.header { 
 
    background-color: #ccffff; 
 
    height: 300px; 
 
    width: 500px; 
 
    border: 1px solid black; 
 
    position: fixed; 
 
    top: 25px; 
 
    left: 8px; 
 
} 
 
.push { 
 
    height: 335px; 
 
} 
 
.section { 
 
    background-color: #cccccc; 
 
    height: 300px; 
 
    width: 500px; 
 
    border: 1px solid black; 
 
    margin-bottom: 15px; 
 
    z-index: 10; 
 
}
<div class="header"></div> 
 

 
<div class="push"></div> 
 

 
<div class="section"></div> 
 
<div class="section"></div> 
 
<div class="section"></div> 
 
<div class="section"></div> 
 
<div class="section"></div> 
 
<div class="section"></div> 
 
<div class="section"></div>

JSfiddle Demo

背景圖像小提琴(帶background-attachment:fixed) - Fiddle

+0

這個作品非常漂亮!感謝您的幫助。 –

1

使用div作爲間隙(.headergap)見下文。

的CSS:

.headergap{ 
    background-color: #cccccc; 
    position:fixed; 
    top:0px; 
    height: 25px; 
    width: 100%; 
} 

.header { 
    background-color:#ccffff; 
    height:300px; 
    width:500px; 
    border:1px solid black; 
    position:fixed; 
    top:25px; 
    left:8px; 
} 

.push { 
    height:335px; 
} 

.section { 
    background-color: #cccccc; 
    height:300px; 
    width:500px; 
    border:1px solid black; 
    margin-bottom:15px 
} 

HTML:

<div class="headergap"></div> 
<div class="header"></div> 

<div class="push"></div> 

<div class="section"></div> 
<div class="section"></div> 
<div class="section"></div> 
<div class="section"></div> 
<div class="section"></div> 
<div class="section"></div> 
<div class="section"></div> 

見琴: https://jsfiddle.net/6bhhn869/

+0

謝謝你的回覆,但是這是我們嘗試的解決方案之一,然而,當身體上有背景圖像時,這不會工作? –

+0

ahh我看到了,另一個嘗試的方法是:將背景圖像裁剪爲JPEG並將其應用到.headerdiv,這可能會根據背景圖像的縮放來解決問題。 –

0

Updated code

我已經使用vh爲時間你可以使用jquery來計算身高,並將其應用於in-wrap