纯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 Tips(2) 关于$()包装集你不知道的
Dec 14 Javascript
javascript语言结构小记(一)
Sep 10 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
js获取通过ajax返回的map型的JSONArray的方法
Jan 09 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
JavaScript 数组的深度复制解析
Nov 02 Javascript
简单谈谈gulp-changed插件
Feb 21 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 Javascript
JavaScript实现复选框全选和取消全选
Nov 20 Javascript
Vue3.0写自定义指令的简单步骤记录
Jun 27 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
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
微信小程序收藏功能的实现代码
2018/06/12 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python中尾递归用法实例详解
2015/04/28 Python
浅析Python四种数据类型
2018/09/26 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
python、Matlab求定积分的实现
2019/11/20 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
python实现简单文件读写函数
2021/02/25 Python
马来西亚网上购物:Youbeli
2018/03/30 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
简单叙述一下MYSQL的优化
2016/05/09 面试题
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
在人间读书笔记
2015/06/30 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书