采用面向對象來做
關于頭部滑動顯示和隱藏
var scrollFunc = function(e) {
var direct = 0;
e = e || window.event;
if (e.wheelDelta) {
direct = e.wheelDelta > 0 ? 1 : -1;
} else if (e.detail) {
direct = e.detail < 0 ? 1 : -1;
}
isShow(direct);
}
//用淡入淡出的效果來顯示頭部
function isShow(direct) {
if (direct == 1) {
//向上顯示
$(".header_info").fadeIn(); //這里是你要隱藏的class
var winH = $(document).height();
} else {
//向下隱藏
$(".header_info").fadeOut(); //這里是你要隱藏的class
}
}
//全局變量,觸摸開始位置
var startX = 0,
startY = 0;
//touchstart事件
function touchSatrtFunc(evt) {
try {
var touch = evt.touches[0]; //獲取第一個觸點
var x = Number(touch.pageX); //頁面觸點X坐標
var y = Number(touch.pageY); //頁面觸點Y坐標
//記錄觸點初始位置
startX = x;
startY = y;
} catch(e) {
alert('touchSatrtFunc:' + e.message);
}
}
//touchmove事件闸拿,這個事件無法獲取坐標
function touchMoveFunc(evt) {
try {
//evt.preventDefault(); //阻止觸摸時瀏覽器的縮放铐拐、滾動條滾動等
var touch = evt.touches[0]; //獲取第一個觸點
var x = Number(touch.pageX); //頁面觸點X坐標
var y = Number(touch.pageY); //頁面觸點Y坐標
if (y - startY > 0) {
//向下滑
$(".header_info").fadeIn();
} else {
//向上滑
$(".header_info").fadeOut();
}
} catch(e) {
alert('touchMoveFunc:' + e.message);
}
}
//touchend事件
function touchEndFunc(evt) {
try {
//evt.preventDefault(); //阻止觸摸時瀏覽器的縮放核行、滾動條滾動等
//var text = 'TouchEnd事件觸發(fā)';
//console.log(text);
} catch(e) {
alert('touchEndFunc:' + e.message);
}
}
//綁定事件
function bindEvent() {
document.addEventListener('touchstart', touchSatrtFunc, false);
document.addEventListener('touchmove', touchMoveFunc, false);
document.addEventListener('touchend', touchEndFunc, false);
}
//判斷是否支持觸摸事件
function isTouchDevice() {
try {
document.createEvent("TouchEvent");
bindEvent(); //綁定事件
} catch(e) {
//不支持TouchEvent事件!
if (document.addEventListener) {
document.addEventListener('DOMMouseScroll', scrollFunc, false);
} //W3C
window.onmousewheel = document.onmousewheel = scrollFunc; //IE/Opera/Chrome
}
}
</br>
</br>
源碼來源:http://www.w3cfuns.com/notes/19371/5249801f7f7cfcd4d74f26db7f431335.html