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 相关文章推荐
教您去掉ie网页加载进度条的方法
Dec 09 Javascript
javascript上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
ListBox实现上移,下移,左移,右移的简单实例
Feb 13 Javascript
jquery1.10给新增元素绑定事件的方法
Mar 06 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
jQuery事件绑定方法学习总结(推荐)
Nov 21 Javascript
PHP7新特性简述
Jun 11 Javascript
vue+vux实现移动端文件上传样式
Jul 28 Javascript
JavaScript对象属性操作实例解析
Feb 04 Javascript
JS数组的高级使用方法示例小结
Mar 14 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 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中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
thinkPHP查询方式小结
2016/01/09 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
js获取ip和地区
2017/03/10 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
Vue自定义指令使用方法详解
2017/08/21 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
python实现得到一个给定类的虚函数
2014/09/28 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
静态变量和实例变量的区别
2015/07/07 面试题
关于是否需要写商业计划书
2014/02/07 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
公务员政审材料
2014/12/23 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
总结Pyinstaller打包的高级用法
2021/06/28 Python