我想将特定的侧 div 固定在特定的滚动级别,一个完美的例子是堆栈 oveflow 提问页面右侧的“如何格式化”栏。只需尝试提出问题即可查看。这怎么可能 ?使用 css 或 jquery。
问问题
6293 次
3 回答
1
这是一个如何完成此操作的简单示例,我们监听window
onscroll
事件,如果$(window).scrollTop()
高于某个阈值,我们将.fixed
类添加到侧边栏,否则将其删除。.fixed
班级设置position:fixed
使其坚持下去。查看 fiddle 以获得完整的工作示例。
JS
$(window).scroll(function () {
var threshold = 100;
if ($(window).scrollTop() >= 100)
$('#sidebar').addClass('fixed');
else
$('#sidebar').removeClass('fixed');
});
CSS
#sidebar {
position:absolute;
width:80px;
background-color:#0F0;
height:200px;
}
#sidebar.fixed {
position:fixed;
top:0;
}
HTML
<header>
I'm the header
</header>
<div id="container">
<aside id="sidebar">
I'm a sidebar
</aside>
<section id="content">
...
</section>
</div>
于 2013-03-31T06:49:55.530 回答
1
$(document).ready(function(){
var my_scrol_position = 220;
$("#my_div_name").scrollTop(my_scrol_position);
});
确保你div
有css
overflow:auto
于 2013-03-31T07:12:23.967 回答
0
本教程可以帮助您。http://css-tricks.com/scrollfollow-sidebar/
或者
这个
html
<div id="header">HEADER</div>
<div id="content">
<div id="left">LEFT</div>
<div id="right">RIGHT</div>
</div>
<div id="footer">FOOTER</div>
js
$(function() {
var $sidebar = $("#right"),
$window = $(window),
rightOffset = $sidebar.offset(),
rightDelta = $("#footer").offset().top - $("#header").offset().top - $("#header").outerHeight() - $("#right").outerHeight(),
topPadding = 15;
$window.scroll(function() {
$sidebar.stop().animate({
marginTop: Math.max(Math.min($window.scrollTop() - rightOffset.top + topPadding, rightDelta), 0)
});
});
});
示例 2 的工作演示
你可以根据你的需要选择希望这可以帮助你..
于 2013-03-31T08:25:52.460 回答