我有一點問題,試圖檢測我的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函數,因為當我第一次測試時,我使用的是工作版本,向下滾動時標題會保持不變。但是我希望header header保持不變,用戶滾動的是#contentContainer div而不是窗口,所以我把它改為$(window)。到$('#contentContainer ')并且它不再工作了。
滾動功能可以檢測div滾動或必須是$(窗口)。?
謝謝你。
或許你可以用這個?
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');
}
});
});
上一篇vue 設置默認界面
下一篇vue 資深培訓講師