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 load加载页面到div时,不执行页面js的问题
Feb 22 Javascript
jquery+ajax请求且带返回值的代码
Aug 12 Javascript
javascript动态生成树形菜单的方法
Nov 14 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
May 12 Javascript
js表单元素checked、radio被选中的几种方法(详解)
Aug 22 Javascript
微信小程序 密码输入(源码下载)
Jun 27 Javascript
bootstrap实现二级下拉菜单效果
Nov 23 Javascript
JS运动特效之链式运动分析
Jan 24 Javascript
Node.js中你不可不精的Stream(流)
Jun 08 Javascript
vue+axios实现文件下载及vue中使用axios的实例
Sep 21 Javascript
react native 原生模块桥接的简单说明小结
Feb 26 Javascript
原生js实现点击轮播切换图片
Feb 11 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/02/04 PHP
php使用websocket示例详解
2014/03/12 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
python使用marshal模块序列化实例
2014/09/25 Python
django 自定义用户user模型的三种方法
2014/11/18 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
python安装教程
2018/02/28 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
python中使用while循环的实例
2019/08/05 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
AOP的定义以及作用
2013/09/08 面试题
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
课程改革实施方案
2014/03/16 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
指导老师鉴定意见
2015/06/05 职场文书
安全教育片观后感
2015/06/17 职场文书