我制作了一个 jquery 脚本 - 它不是很好而且很笨重,但它可以工作一半......
var $buzz = $('#buzz'),
viewportHeight = $(window).height(),
buzzHeight = 182,
buzzTop = $buzz.offset().top + buzzHeight,
buzzPosition = buzzTop - viewportHeight;
$(window).bind("resize.browsersize", function () {
var viewportHeight = $(window).height(),
buzzTop = $buzz.offset().top + buzzHeight,
buzzPosition = buzzTop - viewportHeight;
}).trigger("resize.browsersize");
$(window).scroll(function () {
if ($(window).scrollTop() >= buzzPosition) {
$buzz.css({
position: 'fixed',
bottom: 0
});
} else {
$buzz.removeAttr("style");
}
});
现在上面的脚本可以工作了,但仅限于初始 viewportHeight 变量。
基本上在我的真实项目中,我的页面上有 ajax 元素、字体和各种大小的动画。当浏览器视口大小发生变化时,我似乎无法更新变量,这会导致嗡嗡声跳跃。
请查看我对上述脚本的操作:http: //jsfiddle.net/rwr4X/2/
如果你向下滚动页面,你会看到buzz出现,当img的底部边缘到达viewport的底部时,位置切换到fixed。并且看起来是无缝的并且流动良好。
但是,如果您通过 ajax 等模拟我的页面变大 - 单击小提琴中的蓝色和绿色 div 以在每次单击时添加 50px。然后,如果您向上和向下滚动,您将看到到达滚动点时嗡嗡声会跳跃/跳过。这是因为我的 scrollTo 变量没有更新到视口的新大小。
任何人都可以帮我修复它,所以如果视口改变大小,嗡嗡声似乎总是无缝地粘在视口的底部。
提前致谢。
查看小提琴:http: //jsfiddle.net/rwr4X/2/