一、jquery返回顶部
$("html , body").animate({scrollTop: 0},'slow');
二、jQuery判断移动端屏幕的滑动方向
$('body').on('touchstart', function(e) {
var touch = e.originalEvent,
startX = touch.changedTouches[0].pageX;
startY = touch.changedTouches[0].pageY;
$('body').on('touchmove', function(e) {
touch = e.originalEvent.touches[0] ||
e.originalEvent.changedTouches[0];
if (touch.pageX - startX > 10) {
console.log("右划");
showPrevious();
$('body').off('touchmove');
} else if (touch.pageX - startX < -10) {
console.log("左划");
showNext();
$('body').off('touchmove');
};
if (touch.pageY - startY > 10) {
console.log("下划");
$('body').off('touchmove');
} else if (touch.pageY - startY < -10) {
console.log("上划");
$('body').off('touchmove');
};
});
// Return false to prevent image
// highlighting on Android
return false;
}).on('touchend', function() {
$('body').off('touchmove');
});
//改进版 手机移动端手指的上滑、下滑、左滑和右滑操作
$("body").on("touchstart", function(e) {
e.preventDefault();
startX = e.originalEvent.changedTouches[0].pageX,
startY = e.originalEvent.changedTouches[0].pageY;
});
$("body").on("touchmove", function(e) {
e.preventDefault();
moveEndX = e.originalEvent.changedTouches[0].pageX,
moveEndY = e.originalEvent.changedTouches[0].pageY,
X = moveEndX - startX,
Y = moveEndY - startY;
if ( Math.abs(X) > Math.abs(Y) && X > 0 ) {
alert("left 2 right");
}
else if ( Math.abs(X) > Math.abs(Y) && X < 0 ) {
alert("right 2 left");
}
else if ( Math.abs(Y) > Math.abs(X) && Y > 0) {
alert("top 2 bottom");
}
else if ( Math.abs(Y) > Math.abs(X) && Y < 0 ) {
alert("bottom 2 top");
}
else{
alert("just touch");
}
});
var windowHeight = $(window).height(),
$body = $("body");
$body.css("height", windowHeight);
三、js判断移动端屏幕的滑动方向
//滑动处理
var startX, startY;
document.addEventListener('touchstart',function (ev) {
startX = ev.touches[0].pageX;
startY = ev.touches[0].pageY;
}, false);
document.addEventListener('touchend',function (ev) {
var endX, endY;
endX = ev.changedTouches[0].pageX;
endY = ev.changedTouches[0].pageY;
var direction = GetSlideDirection(startX, startY, endX, endY);
switch(direction) {
case 0:
alert("无操作");
break;
case 1:
// 向上
alert("up");
break;
case 2:
// 向下
alert("down");
break;
default:
}
}, false);
function GetSlideDirection(startX, startY, endX, endY) {
var dy = startY - endY;
//var dx = endX - startX;
var result = 0;
if(dy>0) {//向上滑动
result=1;
}else if(dy<0){//向下滑动
result=2;
}
else
{
result=0;
}
return result;
}
四、页面移动到对应位置开始执行动画
橙色容器从下方进入可视区域时(或者进入一段高度后),容器内的动画播放。
var eTop=$(element).offset().top;//橙色容器距离整个页面顶部的距离
var wTop=$(window).height();//绿色框可视区域的高度
window.onresize=funciton(){
var wTop=$(window).height();//缩放窗口这个高度会改变,需要再取得
}
$(window).scroll(funciont(){
var dTop = $(document).scrollTop();//绿色框可视区域上面到黑色页面顶部的距离,会实时改变
//所以当橙色容器进入可视区域怎么判断?
//放在scroll事件里面
if(dTop+wTop > eTop){//动画播放事件}
});
就这样,当可视区域上面的高度+可视区域高度>容器距离顶部高度,我们就知道容器进入【可视区底部】了
如果你想让容器进入一段距离(比如100px)再触发动画?
//放在scroll事件里面
if(dTop+wTop-100 > eTop){//动画播放事件}
五、滚动条的启用与禁止
//禁止滚动条
$(document.body).css({
"overflow-x":"hidden",
"overflow-y":"hidden"
});
//启用滚动条
$(document.body).css({
"overflow-x":"auto",
"overflow-y":"auto"
});
六、移动端向上滑动获取下一页数据
上图的用户列表1代表的就是整个窗口的高度,2代表的是整个列表的高度(当然列表是可以上滑的) $(document)的值就是2加上头部和底部的高度
var currentPage = 1;//初始化第一页
/* 手机端向下滑动获取数据 */
var scrollHeight;//记录已经向上滑动的高度
$(window).scroll(function() {//当div向上滑动时便会执行或者这个方法
//这是整个窗口的高度
var windowHeight = parseFloat($(window).height());
//列表滑动的高度
scrollHeight = parseFloat($(window).scrollTop())
var totalheight = windowHeight + scrollHeight;
//$(document)代表的是列表的高度加上头部底部的高度
//如果$(document)的高度小于了窗口的高度加上滑动的高度
if ($(document).height() <= totalheight) {
//如果flag是flase就不会继续请求了,比如说请求到了最后一页
if (flag) {
flag=false;
currentPage = currentPage + 1;
$("#page_tag_load").show();
//getRedemList()是获取新的数据 currentPage 会加1
setTimeout('getRedemList(' + currentPage + ')', 1000);
}
}
}
});