我有一个 div 跟随浏览器滚动并包含在另一个 div 中。
以下函数使我的 div 保持原位并在用户滚动时移动:
$(function() {
var offset = $("#sidebar").offset();
var topPadding = 15;
$(window).scroll(function() {
if ($(window).scrollTop() > offset.top) {
$("#sidebar").stop().animate({
marginTop: $(window).scrollTop() - offset.top + topPadding
});
} else {
$("#sidebar").stop().animate({
marginTop: 0
});
};
});
});
这很好用,除非浏览器高度小于 400 像素,否则它会出现问题。
所以我想我会包含一个简单的行来让它只在浏览器> = 400时运行:
if (window.innerHeight >= 400) {
$(function() {
var offset = $("#sidebar").offset();
var topPadding = 15;
$(window).scroll(function() {
if ($(window).scrollTop() > offset.top) {
$("#sidebar").stop().animate({
marginTop: $(window).scrollTop() - offset.top + topPadding
});
} else {
$("#sidebar").stop().animate({
marginTop: 0
});
};
});
});
}
只要初始浏览器高度大于 400 像素,这似乎就可以正常工作。如果浏览器窗口从其初始高度调整大小,代码仍将执行,这与我想要的相反。
本质上,有没有办法动态跟踪浏览器大小,只在高度大于 400 像素时运行此代码,而在小于 400 像素时不运行?
谢谢你的帮助!