如何平滑地防止固定元素滚动经过指定元素
How to Smoothly Prevent a Fixed Element from Scrolling Past A Specified Element
本质上,我想做的是始终将博客文章的元信息显示在屏幕上。事实上,元信息(标题、作者等)显示在帖子内容的左侧,我已经设置好了,当我向下滚动时,元信息会平滑地显示在屏幕上。然而,我遇到了一个问题:
我无法让它平滑地滚动#comments DIV。它要么重叠,要么跳跃,这取决于我如何调整代码。
这是我正在使用的JS函数:
function brazenlyScroll() {
var element = jQuery(".single-post .headline_area");
var top = element.offset().top - 50;
var elementHeight = 26 + element.height();
var maxTop = jQuery("#comments").offset().top - elementHeight;
var scrollHandler = function() {
if (jQuery(document).width() > 1035) {
var scrollTop = jQuery(window).scrollTop();
if (scrollTop<top) {
element.css({position:"relative",top:""})
} else if (scrollTop>maxTop) {
element.css({position:"absolute",top:(maxTop+"px")})
} else {
element.css({position:"fixed",top:"50px"})
}
}
}
jQuery(window).scroll(scrollHandler);
jQuery(window).resize(scrollHandler);
scrollHandler();
}
该代码通过外部JS文件包含,并在页面底部调用。您可以在此处看到所有这些操作:http://www.rickbeckman.org/dumber-and-dumber-and-dumber/
如有任何帮助,我们将不胜感激。
当元块达到maxTop时,您可以通过给注释div一个300px的填充来使其向右收缩。
我刚刚测试了ur代码,并能够通过将26更改为更大的数字(比如大约60)来修复重叠。
var elementHeight=26+element.height();
希望这能有所帮助。
相关文章:
- 指示禁用元素滚动行为并改为滚动页面
- 在某个点停止固定元素滚动
- jQuery 航点在元素滚动到视图中时添加类
- 到达(窗口)上的中间元素.滚动
- 当元素滚动出屏幕时更改元素位置
- jQuery-将元素滚动到屏幕中间,而不是使用锚链接滚动到顶部
- 我想为一个元素添加一个事件监听器,当相应的元素滚动到视图中时,该监听器就会被激发
- 将元素滚动到页面底部的视图中
- fadeIn元素滚动
- 当光标到达底部时,有没有办法防止contentEditable元素滚动
- 固定元素滚动到Div
- 如何平滑地防止固定元素滚动经过指定元素
- 将所有HTML元素滚动到视图中
- 如果浏览器窗口高度为X,并且元素滚动到其中的X点,则合并条件
- 使用isroll4将最后一个元素滚动到第一个元素的开始位置
- 如何显示单独的锂元素滚动基于窗口的高度
- 根据所单击的元素滚动到页面上的相同位置
- 元素滚动的同时滚动另一个
- 修改jQuery.ScrollTo插件将元素滚动到页面中心(垂直/水平)或尽可能靠近中心
- 我如何检测一个元素滚动到视窗