2017-01-05 44 views
0

我嘗試了一切,但沒有成功。 我試圖做到這一點時,有人滾動右屏幕,他將只滾動他,而不是整個頁面。 這是我的代碼:試圖只滾動div,而不是整個頁面

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<div class="content-container"> 
    <div class="content"> 
    <div>text</div> 
<div>text</div> 
<div>text</div> 
<button id="button"> 
Click me 
</button> 
    </div> 
    </div> 
<div class="new-content"> 
<p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> 
    </div> 

CSS:

.content { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    text-align: center; 
    width: 100%; 
} 
.content-container { 
    height: 100vh; 
    display: block; 
    background: #ddd; 
    float: left; 
    width: 100%; 
    position: relative; 
} 
.new-content { 
    display: none; 
    overflow: auto; 
    float: left; 
    width: 0; 
    height: auto; 
    background: #f60; 
} 
.new-content.half, 
.content-container.half { 
    width: 50%; 
} 

JS:

$('#button').click(function(){ 
    $('.new-content').toggleClass('half').delay(600).fadeIn(100); 
    $('.content-container').toggleClass('half'); 
}); 

**請注意,我知道如果我將height設置爲.new content而不是auto的100vh,它將被修復,但我不知道這部分的高度,因此我需要它是auto(它將超過100vh)* 小提琴:https://jsfiddle.net/adf4uu31/1/

+0

它怎麼說,你想讓它滾動,仍然有一個動態的高度? –

回答

0

設置content-containerposition : fixed並在CSS

+0

我剛試過,它沒有給我一個選擇現在滾動。並且不會出現在100%屏幕下的項目 –

+0

在進行了我建議的調整後,不要忘記運行小提琴腳本(在頁面左上方)....我對原始小提琴腳本進行了更改...做出改變,然後向左「運行」,然後嘗試看...你會注意到橙色窗格,但唯一一個在滾動時移動,正在擊中灰色窗格......但這是另一個問題:) –

0

設置new-contentfloat :right如果我理解正確你想在右窗格中如此滾動它不會變得巨大,但是因爲名單可能會更短,你不想給它一個固定的價值。 在這種情況下,你可以使用

.new-content { 
    max-height: 100vh; 
} 
+0

那麼,我寫在我的問題......... **請注意,我知道,如果我會讓身高100vh上。新的內容,而不是汽車它將被固定,但我不知道正是這個部分的高度,因此我需要它是自動的(它將超過100vh)。* –

+0

我想也許你的意思是一個固定的高度,因爲你引用高度屬性,而最大高度不是一個固定高度,而是一個固定值。 對我來說,你不是很清楚你想達到什麼目的,也許你可以嘗試多解釋一下? 也許你可以通過使用flexbox得到幫助,這是你的一個選擇嗎? –

0

如果容器的高度不固定,那麼div元素的高度隨着其內容增長而增加,這將避免滾動條。所以,你需要有一個與滾動條交互的固定高度。

$(document).ready(function(){ 
 
$('#button').click(function(){ 
 
    $('.new-content').css({'height' : '100vh' }).toggleClass('half').delay(600).fadeIn(100); 
 
    $('.content-container').toggleClass('half'); 
 
}); 
 
});
.content { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform: translate(-50%, -50%); 
 
    text-align: center; 
 
    width: 100%; 
 
} 
 
.content-container { 
 
    height: 100vh; 
 
    display: block; 
 
    background: #ddd; 
 
    float: left; 
 
    width: 100%; 
 
    position: relative; 
 
    overflow : auto; 
 
} 
 
.new-content { 
 
    display: none; 
 
    overflow: auto; 
 
    float: left; 
 
    width: 0; 
 
    height: auto; 
 
    background: #f60; 
 
} 
 
.new-content.half, 
 
.content-container.half { 
 
    width: 50%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="content-container"> 
 
    <div class="content"> 
 
    <div>text</div> 
 
<div>text</div> 
 
<div>text</div> 
 
<button id="button"> 
 
Click me 
 
</button> 
 
    </div> 
 
    </div> 
 
<div class="new-content"> 
 
<p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> 
 
    </div>

相關問題