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 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
Prototype RegExp对象 学习
Jul 19 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 Javascript
js中if语句的几种优化代码写法
Mar 12 Javascript
解决json日期格式问题的3种方法
Feb 02 Javascript
node.js中的http.createClient方法使用说明
Dec 15 Javascript
关于JS中prototype的理解
Sep 07 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
May 10 Javascript
jquery实现左右轮播切换效果
Jan 01 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
Dec 09 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对字符串的递增运算分析
2010/08/08 PHP
php生成短网址示例
2014/05/05 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
用console.table()调试javascript
2014/09/04 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
python分割列表(list)的方法示例
2017/05/07 Python
Django实现学员管理系统
2019/02/26 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
python实现图片插入文字
2019/11/26 Python
python求解汉诺塔游戏
2020/07/09 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
巧克力蛋糕店创业计划书
2014/01/14 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
仓库管理计划书
2014/05/04 职场文书
伦敦奥运会口号
2014/06/13 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
学生党员检讨书范文
2014/12/27 职场文书
2015年环卫工作总结
2015/04/28 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
介绍信应该怎么开?
2019/04/03 职场文书