纯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 相关文章推荐
window.open以post方式将内容提交到新窗口
Dec 26 Javascript
Javascript中数组sort和reverse用法分析
Dec 30 Javascript
javascript异步编程代码书写规范Promise学习笔记
Feb 11 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
May 21 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
JavaScript 完成注册页面表单校验的实例
Aug 19 Javascript
基于Vue过渡状态实例讲解
Sep 14 Javascript
基于jquery实现左右上下移动效果
May 02 jQuery
教你如何用node连接redis的示例代码
Jul 12 Javascript
vue watch深度监听对象实现数据联动效果
Aug 16 Javascript
Vue框架里使用Swiper的方法示例
Sep 20 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 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堆排序实现原理与应用方法
2015/01/03 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
JQuery for与each性能比较分析
2013/05/14 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
线程和进程的区别及Python代码实例
2015/02/04 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python实现三维拟合的方法
2018/12/29 Python
Python 处理图片像素点的实例
2019/01/08 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
Python的高阶函数用法实例分析
2019/04/11 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
python 标准差计算的实现(std)
2019/07/29 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
就业自荐书
2013/12/05 职场文书
实习鉴定评语
2014/01/19 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
房屋所有权证明
2014/10/20 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
校运会加油稿大全
2015/07/22 职场文书
初中数学教学反思范文
2016/02/17 职场文书