DIV 滚动到达页脚(另一个 DIV)后停止滚动
Stop DIV scrolling once it reaches the footer (another DIV)
我有一个"返回顶部"按钮,当用户向下滚动页面时会出现.
在一些帮助下,我设法在下面的代码中实现了这些功能:向下滚动后在某个时间点淡入,动画滚动回顶部,动画滚动到页面的所有 href="#" 链接。
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 800, 'swing', function () {
window.location.hash = target;
});
});
var $win = $(window);
$win.scroll(function () {
if ($win.scrollTop() > 300) {
b.fadeIn();
console.log("fadding in")
}
else {
b.fadeOut();
}
});
});
这是一个工作示例:http://jsfiddle.net/q8DUC/8/
我的问题是按钮滚动到页面的页脚......基本上,"回到顶部"应该在"页脚"DIV上方停止30px。但是我找不到一种方法来实现这一点。我环顾四周,但没有找到任何适用于现有代码的内容。
感谢您的任何帮助或建议!
更新:
更进一步:http://jsfiddle.net/q8DUC/20/
只是不知道我怎样才能避免按钮跳跃!
有没有办法将按钮粘在底部而不是顶部:0???
一如既往地感谢每一个建议或帮助!
我认为您可以获取页脚的位置并将其添加到您的条件中,该条件检查是否应显示按钮:
// dynamically get the position of the footer
var FOOTER_POSITION = someNumber;
// i THINK something like var FOOTER_POSITION = $('#T4').position().top; could work
if (300 < $win.scrollTop() && $win.scrollTop() < FOOTER_POSITION) {
抱歉,我读错了您的问题,因为您对按钮使用固定定位,因此您可以实现以下内容:
- 获取页脚的高度 + 30px
- 获取页脚相对于文档的位置,基于您的小提琴 ~2000px (FOOTER_START)
- 如果窗口顶部的位置> 300 且大于 (FOOTER_START),请将
#back-top
bottom
属性更改为页脚的高度
相关文章:
- 在用户用动画滚动175像素后缩小固定的Div
- 如何确定滚动DIV中的可见DOM元素
- 如何获取滚动DIV中的当前活动文本
- jQuery Div滚动功能:IE中的问题
- DIV 滚动到达页脚(另一个 DIV)后停止滚动
- 使用 Jquery 在页面刷新时停止 Div 滚动到顶部
- Div 滚动位置在页面更改时不会恢复到顶部
- 添加新内容时,保持DIV滚动到底
- DIV滚动器的跨浏览器问题
- Javascript DIV滚动移动
- 如何使同步两个 Div 滚动位置更平滑
- CSS Div滚动高度
- Div滚动与jQuery动画
- 当单击TD时,可滚动的DIV滚动到顶部
- 为特定的js/jsp隐藏Div滚动条
- 单击按钮时从一个Div滚动到另一个Div
- 如何根据条件将 DIV 滚动到浏览器窗口的顶部
- Firefox中的Div滚动
- Div滚动向下和滚动向上与jquery
- 当用户到达某个Div(滚动)时如何触发Fancybox