固定定位元素在滚动时停止在某个点
Fix positioned element stops at certain point when scrolling
box2是一个固定位置的元素,滚动时需要它停在box1的顶部和底部。如有任何帮助,我们将不胜感激。
$(window).scroll(function() {
var h1 = $('.box1').height();
var h2 = $('.box2').height();
var h3 = $('.footer').outerHeight(true);
$('.box2').css('bottom', h3);
});
示例
如果我正确理解这个问题,您希望box2
在视口中显示为静态,除非它永远不应该高于或低于box1
的范围。
使用此代码:
$(window).scroll(function() {
var scrollTop= $(window).scrollTop(),
b1= $('.box1'),
b2= $('.box2'),
min= b1.position().top,
max= (b1.position().top + b1.outerHeight()) - b2.outerHeight();
b2.css({
top: Math.min(Math.max(scrollTop,min),max) - scrollTop
});
});
工作Fiddle
Rick Hitchcock的精彩回答,做出了一些改进:
var $b1 = $('.box1'); // 1
var $b2 = $('.box2'); // 1
var min = $b2.position().top; // 2
$(window).scroll(function() {
var scrollTop = $(window).scrollTop();
var max = ($b1.position().top + $b1.outerHeight()) - $b2.outerHeight();
$b2.css({
top: Math.min(Math.max(scrollTop, min), max)
});
});
- 缓存DOM查询
- 使
min
成为页面加载时$b2
的原始顶部
jsbin演示
相关文章:
- 如何在定位导航后向下滚动页面
- 滚动定位时隐藏标题
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- 当打开绝对定位下拉菜单时,页面将滚动到顶部
- 固定定位元素在滚动时停止在某个点
- JQuery定位:我可以滚动到正确的位置一次,但不能滚动两次
- jquery数据表滚动条定位
- Javascript修复了滚动定位
- 实现延迟在滚动上加载未知大小的图像并最佳定位的图像库
- (IE9)删除浮动或绝对定位的元素将导致同级元素的滚动条滚动回顶部
- JS滚动链接 - 使用linkify - 如何定位特定类
- 滚动到:定位导航栏中的特定按钮
- 水平滚动定位
- 滚动时引导弹出框未连接到按钮/定位错误
- 定位滚动条
- 如何防止父容器滚动定位为固定的子元素
- 定位链接滚动条从中间开始
- CSS-定位滚动分区
- Javascript滚动视差定位
- jQuery滚动定位不好