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 相关文章推荐
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
Mar 12 Javascript
记录几个javascript有关的小细节
Apr 02 Javascript
pjblog中的UBBCode.js
Apr 25 Javascript
javascript下有关dom以及xml节点访问兼容问题
Nov 26 Javascript
jquery 1.4.2发布!主要是性能与API
Feb 25 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
Jan 22 Javascript
JavaScript二维数组实现的省市联动菜单
May 08 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
Aug 19 Javascript
Javascript基础教程之定义和调用函数
Jan 18 Javascript
详解JavaScript函数对象
Nov 15 Javascript
canvas基础绘制-绚丽倒计时的实例
Sep 17 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 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 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
简单谈谈python中的Queue与多进程
2016/08/25 Python
python抓取网页中链接的静态图片
2018/01/29 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
餐饮加盟计划书
2014/01/10 职场文书
运动会入场解说词300字
2014/01/25 职场文书
高中军训感言400字
2014/02/24 职场文书
2014年绿化工作总结
2014/12/09 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
体育教师研修感悟
2015/11/18 职场文书
实用求职信模板范文
2019/05/13 职场文书
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android
详解redis在微服务领域的贡献
2021/10/16 Redis
浅谈MySQL中的六种日志
2022/03/23 MySQL