纯javascript实现简单下拉刷新功能


Posted in Javascript onMarch 13, 2015

代码很简单,实现的功能却很实用,直接奉上代码

CSS:

<meta charset="utf-8" />

<title>Pull to Refresh</title>

<meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;" />

<style>

div{

    position: absolute;

    top:0px;

    bottom:0px;

    width:100%;

    left:0px;

    overflow: hidden;

}

li{

    list-style-type: none;

    height:35px;

    background: #ccc;

    border-bottom: solid 1px #fff;

    text-align: left;

    line-height: 35px;

    padding-left:15px;

}

ul{

    width:100%;

    margin-top:0px;

    position: absolute;

    left:0px;

    padding:0px;

    top:0px;

}

</style>

HTML:

<div class="outerScroller">

    <ul class = 'scroll'>

        <li>1</li>

        <li>2</li>

        <li>3</li>

        <li>4</li>

        <li>5</li>

        <li>6</li>

        <li>7</li>

        <li>8</li>

        <li>9</li>

        <li>10</li>

         <li>1</li>

        <li>2</li>

        <li>3</li>

        <li>4</li>

        <li>5</li>

        <li>6</li>

        <li>7</li>

        <li>8</li>

        <li>9</li>

        <li>10</li>

    </ul>

</div>

<script>

   var scroll = document.querySelector('.scroll');

   var outerScroller = document.querySelector('.outerScroller');

   var touchStart = 0;

   var touchDis = 0;

   outerScroller.addEventListener('touchstart', function(event) { 

        var touch = event.targetTouches[0]; 

        // 把元素放在手指所在的位置 

           touchStart = touch.pageY; 

           console.log(touchStart);

        }, false);

   outerScroller.addEventListener('touchmove', function(event) { 

        var touch = event.targetTouches[0]; 

        console.log(touch.pageY + 'px');  

        scroll.style.top = scroll.offsetTop + touch.pageY-touchStart + 'px';

        console.log(scroll.style.top);

        touchStart = touch.pageY;

        touchDis = touch.pageY-touchStart;

        }, false);

   outerScroller.addEventListener('touchend', function(event) { 

        touchStart = 0;

        var top = scroll.offsetTop;

        console.log(top);

        if(top>70)refresh();

        if(top>0){

            var time = setInterval(function(){

              scroll.style.top = scroll.offsetTop -2+'px';

              if(scroll.offsetTop<=0)clearInterval(time);

            },1)

        }

    }, false);

   function refresh(){

    for(var i = 10;i>0;i--)

        {

            var node = document.createElement("li");

            node.innerHTML = "I'm new";

            scroll.insertBefore(node,scroll.firstChild);

        }

   }

</script>

以上就是本文的全部内容了,希望对大家学习javascript能够有所帮助。

Javascript 相关文章推荐
jquery tools系列 expose 学习
Sep 06 Javascript
分享20款好玩的jQuery游戏
Apr 17 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
JavaScript返回0-1之间随机数的方法
Apr 06 Javascript
jQuery实现的自动加载页面功能示例
Sep 04 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
Vue集成Iframe页面的方法示例
Dec 12 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
Jan 21 Javascript
Vue实现一个图片懒加载插件
Mar 11 Javascript
微信小程序template模版的使用方法
Apr 13 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 Javascript
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
Jquery插件实现点击获取验证码后60秒内禁止重新获取
Mar 13 #Javascript
node.js [superAgent] 请求使用示例
Mar 13 #Javascript
JavaScript中逗号运算符介绍及使用示例
Mar 13 #Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 #Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 #Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 #Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 #Javascript
You might like
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
PHP获取文件行数的方法
2015/06/10 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
《再别康桥》教学反思
2014/02/12 职场文书
个人安全生产责任书
2014/07/28 职场文书
拆迁委托协议书
2014/09/15 职场文书
2014年教学工作总结
2014/11/13 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers