我在尝试检测div上的滚动位置时遇到了一些问题。这是我的代码:
的index.html
<div id="wrapper">
<div id="headerOne">I am a header</div>
<div id="contentContainer">
<div id="content">
I am some content
</div>
</div>
</div>
jQuery函数(不工作版本)
$(document).ready(function() {
var aboveHeight = $('#headerOne').outerHeight();
$('#contentContainer').scroll(function(){
if ($('#contentContainer').scrollTop() > aboveHeight){
$('#headerOne').addClass('fixed').css('top','0').next().css('padding-top','60px');
} else {
$('#headerOne').removeClass('fixed').next().css('padding-top','0');
}
});
});
jQuery函数(工作版)
$(document).ready(function() {
var aboveHeight = $('#headerOne').outerHeight();
$(window).scroll(function(){
if ($(window).scrollTop() > aboveHeight){
$('#headerOne').addClass('fixed').css('top','0').next().css('padding-top','60px');
} else {
$('#headerOne').removeClass('fixed').next().css('padding-top','0');
}
});
});
有两种不同的jQuery功能,因为当我第一次测试时,我正在使用工作版,并且在向下滚动时标题保持不变。但我希望标题标题保持固定状态,用户滚动#contentContainer
div而不是窗口,因此我将其更改为$(window).
至$('#contentContainer')
并且它不再起作用。
可以滚动功能检测div滚动还是必须是$(window).
?
谢谢。
答案 0 :(得分:0)
也许你可以用它?
jQuery(document).ready(function($) {
//Calculate the height of <header>
//Use outerHeight() instead of height() if have padding
var aboveHeight = 130;
//when scroll
$(window).scroll(function(){
//if scrolled down more than the header’s height
if ($(window).scrollTop() > aboveHeight){
// if yes, add “fixed” class to the <nav>
// add padding top to the #content
//(value is same as the height of the nav)
$('nav').addClass('fixed').css('top','0').next()
.css('padding-top','60px');
} else {
// when scroll up or less than aboveHeight,
//remove the “fixed” class, and the padding-top
$('nav').removeClass('fixed').next()
.css('padding-top','0');
}
});
});