在很多網站中都有滑鼠網上滾動頭部就會滑出,繼續往下滾動就會隱藏,下面看看實現方法
scroll();
function scroll(){// 入口方法 這個方法是獲取事件的相容,獲取delta --表示滾動條走向
var ele = document.documentElement || document.body;
var eventType = 'mousewheel';
// 火狐是DOMMouseScroll事件
if (document.mozHidden !== undefined) {
eventType = 'DOMMouseScroll';
}
function getData(event){
var e = event || window.event;
//為了相容火狐
//為了相容火狐
var delta = e.wheelDelta?e.wheelDelta:e.detail;//wheelDelta 非火狐-120:向下 120:向上 /detail火狐 3:向下 -3 :向上
bScrolls(delta);
}
myAddEvent(ele,eventType,getData);
}
function myAddEvent(ele,sEvent,getData){ //這個方法是相容繫結事件/監聽事件
if(ele.addEventListener && !ele.attachEvent){//非IE
ele.addEventListener(sEvent,getData);
}else{//IE
if(document.attachEvent && !document.addEventListener){ //IE8以下
ele.attachEvent('on'+sEvent,getData);
}else{ //IE8以上下
ele.addEventListener(sEvent,getData);
}
}
}
function bScrolls(delta){//執行操作
var p = document.documentElement.scrollTop || document.body.scrollTop;//當前滾動條的高度
if(p > ){//如果滾動條的高度大於你設定的高度,就開始判斷滾動條的走向
$('.header').addClass('scroll');
if(delta < - || delta == ){//向下滾動
$('.header').removeClass('top');
}
else if(delta > || delta == -){//上滾
$('.header').addClass('top');
}
}else{
$('.header').removeClass('scroll');
}
}
這樣用滑鼠滾輪可以操控頭部顯示與隱藏,但是拖動滾動條確是沒反應
在谷歌火狐中也可以監聽onscroll 他可以實現用滑鼠拉滾動條也會有這樣的效果,在IE中不行必須要使用滾輪事件,
而且用onscroll事件監聽,獲取不到wheelDelta值,所以判斷滾動條走向就要自己定義變數,去判斷滾動條走向,程式碼如下
function scrolls(){
var p=,t=;
var windHeight = $(window).height();
$(window).scroll(function(){
p = $(this).scrollTop();
if(t<=p){//下滾
//顯示操作
}
else{//上滾
//隱藏操作
}
t = p;
});
}
此方法僅供參考