纯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 相关文章推荐
JQERY limittext 插件0.2版(长内容限制显示)
Aug 27 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
JQuery设置文本框和密码框得到焦点时的样式
Aug 30 Javascript
js 操作符汇总
Nov 08 Javascript
20条学习javascript的编程规范的建议
Nov 28 Javascript
JS实现的数组全排列输出算法
Mar 19 Javascript
使用JavaScript刷新网页的方法
Jun 04 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
JavaScript requestAnimationFrame动画详解
Sep 14 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
JavaScript 处理树数据结构的方法示例
Jun 16 Javascript
VUE解决 v-html不能触发点击事件的问题
Oct 28 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下获取客户端ip地址的函数
2010/03/15 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
在Linux下调试Python代码的各种方法
2015/04/17 Python
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
python求最大连续子数组的和
2018/07/07 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
pandas 数据类型转换的实现
2020/12/29 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
大学毕业生简单自荐信
2013/11/05 职场文书
美容院管理规章制度
2015/08/05 职场文书
Golang连接并操作MySQL
2022/04/14 MySQL
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers