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 相关文章推荐
$.format,jquery.format 使用说明
Jul 13 Javascript
jquery实现excel导出的方法
Apr 04 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
Jul 01 Javascript
jquery如何把数组变为字符串传到服务端并处理
Apr 30 Javascript
JavaScript中的原型和继承详解(图文)
Jul 18 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
彻底学会Angular.js中的transclusion
Mar 12 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
May 24 Javascript
微信小程序列表中item左滑删除功能
Nov 07 Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
7个好用的JavaScript技巧分享(译)
May 07 Javascript
环形加载进度条封装(Vue插件版和原生js版)
Dec 04 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
set_include_path在win和linux下的区别
2008/01/10 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
Python的Django框架使用入门指引
2015/04/15 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
python相对企业语言优势在哪
2020/06/12 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
店长岗位的工作内容
2013/11/12 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
2014年政工师工作总结
2014/12/18 职场文书
见义勇为事迹材料
2014/12/24 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB