2017-01-05 48 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>

相关问题