php手机页面下拉刷新,js仿手机页面文件下拉刷新效果

最后弄出了一个简单的下拉刷新页面的形式,还不算太复杂

要在仿真器下才能看到效果,比如chrome的里边(或者用手机浏览器查看,但测试发现有些浏览器有问题,目前手机猎豹是没问题的)

7a3b0fc82c441dc8d169156f43e3a849.png

885ec9d0812a355296055bb73dbf12a8.png

895ad410e4d8d2720a1fbbe1314aaa61.png

f61474ec977bd28bb514ea536b9a86a3.png

主要就是:

下拉-->提示松开刷新-->松开后-->开始刷新-->刷新成功后还原

html,css部分

style type="text/css">

#slideDown{margin-top: 0;width: 100%;}

#slideDown1,#slideDown2{width: 100%;height: 70px;;background: #e9f4f7;display: none;}

#slideDown1{height: 20px;}

#slideDown1>p,#slideDown2>p{margin: 20px auto;text-align:center;font-size: 14px;color: #37bbf5;}

松开刷新

正在刷新 ...

  • item1 -- item1 -- item1
  • item2 -- item2 -- item2
  • item3 -- item3 -- item3
  • item4 -- item4 -- item4
  • item5 -- item5 -- item5
  • item6 -- item6 -- item6
  • item7 -- item7 -- item7

js部分:

主要就是为一个节点绑定事件,可以是整个body,按照实际来看

k_touch()函数是主要代码,目前主要涉及三个事件,touchstart  touchmove  touchend

这里获取touch点坐标是用pageX,pageY 当然不兼容的话先不考虑

因为是下滑才刷新,所以稍微控制一下way,其实也就是通过这个控制是获取pageX 还是pageY

滑一滑可以直接看到dist的变化,其实就把它看做px了吧

0acf9eed06bc6b81fead705de609160a.png

更多的功能,以后再说吧..

//第一步:下拉过程

function slideDownStep1(dist){ // dist 下滑的距离,用以拉长背景模拟拉伸效果

var slideDown1 = document.getElementById("slideDown1"),

slideDown2 = document.getElementById("slideDown2");

slideDown2.style.display = "none";

slideDown1.style.display = "block";

slideDown1.style.height = (parseInt("20px") - dist) + "px";

}

//第二步:下拉,然后松开,

function slideDownStep2(){

var slideDown1 = document.getElementById("slideDown1"),

slideDown2 = document.getElementById("slideDown2");

slideDown1.style.display = "none";

slideDown1.style.height = "20px";

slideDown2.style.display = "block";

//刷新数据

//location.reload();

}

//第三步:刷新完成,回归之前状态

function slideDownStep3(){

var slideDown1 = document.getElementById("slideDown1"),

slideDown2 = document.getElementById("slideDown2");

slideDown1.style.display = "none";

slideDown2.style.display = "none";

}

//下滑刷新调用

k_touch("content","y");

//contentId表示对其进行事件绑定,way==>x表示水平方向的操作,y表示竖直方向的操作

function k_touch(contentId,way){

var _start = 0,

_end = 0,

_content = document.getElementById(contentId);

_content.addEventListener("touchstart",touchStart,false);

_content.addEventListener("touchmove",touchMove,false);

_content.addEventListener("touchend",touchEnd,false);

function touchStart(event){

//var touch = event.touches[0]; //这种获取也可以,但已不推荐使用

var touch = event.targetTouches[0];

if(way == "x"){

_start = touch.pageX;

}else{

_start = touch.pageY;

}

}

function touchMove(event){

var touch = event.targetTouches[0];

if(way == "x"){

_end = (_start - touch.pageX);

}else{

_end = (_start - touch.pageY);

//下滑才执行操作

if(_end < 0){

slideDownStep1(_end);

}

}

}

function touchEnd(event){

if(_end >0){

console.log("左滑或上滑 "+_end);

}else{

console.log("右滑或下滑"+_end);

slideDownStep2();

//刷新成功则

//模拟刷新成功进入第三步

setTimeout(function(){

slideDownStep3();

},2500);

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值