在我的aspx页面上,我有两个左右两部分。我想在滚动右侧(这是页面的实际内容)时始终显示左侧(实际上是'div'包含树视图)。感谢
答案 0 :(得分:18)
您好我找到了最佳解决方案!一如既往JQUERY拯救我的生命!!
只要按照你的要求调用一个Div,我在下面的示例中选择了相同的内容:#scrollingDiv。
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script>
$().ready(function() {
var $scrollingDiv = $("#scrollingDiv");
$(window).scroll(function(){
$scrollingDiv
.stop()
.animate({"marginTop": ($(window).scrollTop() )}, "slow" );
});
});
</script>
我从网站上获取了该代码,它很有效,而且很容易理解。
答案 1 :(得分:16)
您需要将position: fixed;
放在div元素上。这会将它锚定到视口。
答案 2 :(得分:5)
最远可以追溯到2020年,现在可以使用CSS做到这一点。
<div style="position: sticky; top: 0;"> Tree view </div>
The user npas explains this quite nicely:
支持
top
是滚动时div应该停留在视口顶部的距离。必须指定top
。 (...)粘性div在所有方面都将像普通div一样起作用,除非您滚动过去,然后它会停留在浏览器的顶部。
这里有一个jsfiddle,可以给您一个想法。
答案 3 :(得分:3)
您需要在CSS中将div的位置设置为Fixed。有关详细信息,请参阅this link。您需要使用css中的顶部和左侧设置位置,以便知道在哪里修复它!
答案 4 :(得分:3)
问题是当块移动时,它会引起注意并集中精力阅读。
使用此功能解决此问题。
此代码非常完美:
(更改&#34; 220&#34;&#34; 46px&#34;如有必要)
var $scrollingDiv = $("#scrollingDiv");
$(window).scroll(function(){
if ($(window).scrollTop()>220) {
$scrollingDiv
.css("position",'fixed' )
.css("top",'46px' )
} else {
$scrollingDiv
.css("position",'' )
.css("top",'' )
}
});