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 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 Javascript
jquery miniui 教程 表格控件 合并单元格应用
Nov 25 Javascript
使用javascript做的一个随机点名程序
Feb 13 Javascript
js中取得变量绝对值的方法
Jan 03 Javascript
jQuery中:checkbox选择器用法实例
Jan 03 Javascript
基于jQuery实现的菜单切换效果
Oct 16 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
BootStrap Tooltip插件源码解析
Dec 27 Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 Javascript
深入浅析Node环境和浏览器的区别
Aug 14 Javascript
详解小程序之简单登录注册表单验证
May 13 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中使用模板的方法
2008/05/24 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
Django Admin实现上传图片校验功能
2016/03/06 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
党员干部承诺书范文
2014/03/25 职场文书
三字经教学反思
2014/04/26 职场文书
经典禁毒标语
2014/06/16 职场文书
安全保卫工作竞聘材料
2014/08/25 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript