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


Posted in Javascript onOctober 14, 2016

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

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

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

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

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

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

主要就是:

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

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;}
</style>


 <div id="content">
  <div id="slideDown">
   <div id="slideDown1">
    <p>松开刷新</p>
   </div>
   <div id="slideDown2">
    <p>正在刷新 ...</p>
   </div>
  </div>
  <div class="myContent">
   <ul>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
   </ul>
  </div>
 </div>

js部分:

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

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

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

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

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

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

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

<script type="text/javascript">
 //第一步:下拉过程
 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);
   }
  }
 }
</script>

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

Javascript 相关文章推荐
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
Javascript中3种实现继承的方法和代码实例
Aug 12 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
Nov 17 Javascript
JavaScript中日期的相关操作方法总结
Oct 24 Javascript
jquery实现图片预加载
Dec 25 Javascript
深入理解setTimeout函数和setInterval函数
May 20 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
js模拟微博发布消息
Feb 23 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
vue中的面包屑导航组件实例代码
Jul 01 Javascript
微信小程序和H5页面间相互跳转代码实例
Sep 19 Javascript
ES6实现图片切换特效代码
Jan 14 Javascript
前端js实现文件的断点续传 后端PHP文件接收
Oct 14 #Javascript
js关于getImageData跨域问题的解决方法
Oct 14 #Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 #Javascript
深入学习js瀑布流布局
Oct 14 #Javascript
微信小程序 地图定位简单实例
Oct 14 #Javascript
Bootstrap作品展示站点实战项目2
Oct 14 #Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
Oct 14 #Javascript
You might like
php判断变量类型常用方法
2012/04/24 PHP
php除数取整示例
2014/04/24 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
jtable列中自定义button示例代码
2013/11/21 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
从零学Python之引用和类属性的初步理解
2014/05/15 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
python使用zip将list转为json的方法
2018/12/31 Python
python文件写入write()的操作
2019/05/14 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
岗位职责的含义
2013/11/17 职场文书
学生思想表现的评语
2014/01/30 职场文书
工地安全检查制度
2014/02/04 职场文书
集体婚礼策划方案
2014/02/22 职场文书
防沙治沙典型材料
2014/05/07 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
企业承诺书格式范文
2015/04/28 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP