我制作了一个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元素,font-face和各种大小的动画。当浏览器视口大小发生变化时,我似乎无法更新变量,这会导致buzz跳转。
请参阅我的小提琴上面的剧本:http://jsfiddle.net/rwr4X/2/
如果向下滚动页面,您将看到嗡嗡声,当img的下边缘到达视口底部时,位置会切换到固定位置。而且似乎是无缝的,流畅的。
但是,如果您通过ajax等模拟我的页面变得更大 - 单击fiddle中的蓝色和绿色div,每次点击添加50px。然后,如果您向上和向下滚动,当达到滚动点时,您将看到嗡嗡声跳跃/跳过。这是因为我的scrollTo变量没有更新到视口的新大小。
任何人都可以帮我修复它,所以如果视口改变大小,嗡嗡声似乎总是无缝地粘在视口的底部。
提前致谢。