我在侧边栏中使用jQuery浮动小部件 - 链接到我的帖子http://www.product-investigation.com/fat-loss-factor-review - 如果向下滚动,你可以看到我的意思..我想在页脚栏前停止我的adsense小部件..谢谢你的帮助:)
我的javascript
<script>
$(document).ready(function() {
function isScrolledTo(elem) {
var docViewTop = $(window).scrollTop(); //num of pixels hidden above current screen
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top; //num of pixels above the elem
var elemBottom = elemTop + $(elem).height();
return ((elemTop <= docViewTop));
}
var catcher = $('#catcher');
var sticky = $('#sticky');
$(window).scroll(function() {
if(isScrolledTo(sticky)) {
sticky.css('position','fixed');
sticky.css('top','100px');
}
var stopHeight = catcher.offset().top + catcher.height();
if ( stopHeight > sticky.offset().top) {
sticky.css('position','absolute');
sticky.css('top',stopHeight);
}
});
});
</script>
答案 0 :(得分:3)
我已更新您的jsfiddle。我改变了你的条件:
return ((elemTop <= docViewTop || elemTop >= docViewTop)); //Changed your return in isScrolledTo
说明:我在下面添加的代码会将sticky
div放在footer
的顶部,如果我使用您原来的return
语句并向上滚动,{{1在sticky
之上,div的位置仍然是absolute
。这是因为您的footer
语句只会检查元素的return
位置是否小于或等于top
值,而scrollTop()
值只能在scrolldown
期间使用。在sticky
已位于底部的情况下,isScrolledTo()
还应检查top
div的sticky
是否大于或等于{{1}价值。
并在scrollTop()
.scroll()
希望它有所帮助。