纯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 写的个性导航菜单
Dec 24 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
javascript检查表单数据是否改变的方法
Jul 30 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
Jan 19 Javascript
解决vue 更改计算属性后select选中值不更改的问题
Mar 02 Javascript
Vue2.0 事件的广播与接收(观察者模式)
Mar 14 Javascript
简单了解微信小程序的目录结构
Jul 01 Javascript
微信小程序如何调用新闻接口实现列表循环
Jul 02 Javascript
js判断鼠标移入移出方向的方法
Jun 24 Javascript
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编写的导航条程序
2006/10/09 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
php实现两个数组相加的方法
2015/02/17 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
set在python里的含义和用法
2019/06/24 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
如何在django中实现分页功能
2020/04/22 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
人力资源管理毕业生自荐信
2013/11/21 职场文书
新年联欢会主持词
2014/03/27 职场文书
环卫工人节活动总结
2014/08/29 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
优秀教师个人材料
2014/12/15 职场文书
优秀党员推荐材料
2014/12/18 职场文书
仓管员岗位职责
2015/02/03 职场文书
实名检举信范文
2015/03/02 职场文书