纯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 相关文章推荐
javaScript 读取和设置文档元素的样式属性
Apr 14 Javascript
div+css布局的图片连续滚动js实现代码
May 04 Javascript
Javascript 面向对象编程(一) 封装
Aug 28 Javascript
图片img的src不变让浏览器重新加载实现方法
Mar 29 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
jquery 根据name名获取元素的value值
Feb 27 Javascript
JavaScript实现Iterator模式实例分析
Jun 09 Javascript
JavaScript获取对象在页面中位置坐标的方法
Feb 03 Javascript
关于网页中的无缝滚动的js代码
Jun 09 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 Javascript
JavaScript惰性载入函数实例分析
Mar 27 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
PHP连接access数据库
2015/03/27 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
传智播客学习之java 反射
2009/11/22 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Django 框架模型操作入门教程
2019/11/05 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
巴黎一票通:The Paris Pass
2018/02/10 全球购物
公司活动总结怎么写
2014/06/25 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
考试没考好检讨书
2015/05/06 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python