首先对iscroll的scrollTo方法进行稍微修改如下图:

对iscroll滑动到屏幕边缘不能弹回的bug进行修复,如下代码:

function scrollbug() {
var self = this;
if (this.maxScrollY - this.y > 50) {
var load = $(self.wrapper).find("div.load-more");
load.find("span.load-text").text("放开加载跟多");
load.find("span.down-icon").removeClass("up-icon");
} else { var load = $(self.wrapper).find("div.load-more");
load.find("span.load-text").text("上拉加载更多");
load.find("span.down-icon").addClass("up-icon");
}
if (self.y > 50) {
var load=$(self.wrapper).find("div.load-refresh");
load.find("span.load-text").text("放开刷新");
load.find("span.down-icon").addClass("up-icon");
} else {
var load = $(self.wrapper).find("div.load-refresh");
load.find("span.load-text").text("下拉刷新");
load.find("span.down-icon").removeClass("up-icon");
}
///修复代码
if ((self.y <= self.maxScrollY) && (self.pointY < 45) && self.options.border) {
self.options.border = false;
self.scrollTo(0, self.maxScrollY, 400);
setTimeout(function () { self.options.border = true; }, 400);
return false;
} else if (self.y > 0 && (self.pointY > window.innerHeight - 1) && self.options.border) {
self.options.border = false;
self.scrollTo(0, 0, 400);
setTimeout(function () { self.options.border = true; }, 400);
return false;
} };

  html代码结构如下:

<section class="s-content" id="scroller">
<div class="scroller">
<div class="load-refresh" style="background-color: transparent;">
<span class="down-icon"></span><span class="load-text">下拉刷新</span>
</div>
<ul class="text-list" >
</ul>
<div class="load-more">
<span class="down-icon"></span><span>上拉加载更多</span>
</div>
</div>
</section >

  

js代码:

//border用于判断是否复原到顶部或底部,用于避免多次触发。
document.body.onload = function () {
var option = { probeType: 1, mouseWheel: true, fadeScrollbars: false, click: true, tap: true, border: true };
myScroll = new IScroll('#scroller', option);
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
myScroll.on("scroll", scrollbug);
myScroll.on("slideDown", function () {
var self = this;
if (self.y > 50) {
var load = $(self.wrapper).find("div.load-refresh");
self.scrollTo(0, 50);
setTimeout(function () { load.find("span.down-icon").addClass("load-icon"); }, 150);
$("#page-content").addClass("loading");
setTimeout(function () { load.find("span.load-text").text("加载中,请稍后..."); }, 100);
window.location.reload(true);
}
});
myScroll.on("slideUp", function () {
        var self = this;
           if (self.maxScrollY - self.y > 50) {
var bottom = +self.maxScrollY, load = $(self.wrapper).find("div.load-more");
             var pages = $("#activity-list").attr("data-page");
             if (pages != "ok") {//pages 页码如果是ok这表示是最后一页
               self.scrollTo(0, bottom - 50);
               load.find("span.down-icon").addClass("load-icon");
               $("body").addClass("loading");
               setTimeout(function () { load.find("span.load-text").text("加载中,请稍后..."); }, 100);
               pages = pages ? pages : 1;
               toPage({ pageNO: ++pages });
             }
           }
}); };

  css样式:

.s-content{
position:relative;
overflow:hidden;
width: 100%;
   -ms-touch-action: none;
   z-index:999999;
   -webkit-transform: translate3d(0,0,0);
   transform: translate3d(0,0,0);
-webkit-touch-callout: none;
  -webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;user-select: none;
-webkit-text-size-adjust: none;
-moz-text-size-adjust: none;
-ms-text-size-adjust: none;
-o-text-size-adjust: none;
text-size-adjust: none;
}
.scroller {
position: absolute;
width: 100%;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-text-size-adjust: none;
-moz-text-size-adjust: none;
-ms-text-size-adjust: none;
-o-text-size-adjust: none;
text-size-adjust: none;
z-index:1;
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}

  

  

  

  

iscroll的下拉刷新,上拉翻页。的更多相关文章

  1. vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

    vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...

  2. JS+CSS实现的下拉刷新/上拉加载插件

    闲来无事,写了一个当下比较常见的下拉刷新/上拉加载的jquery插件,代码记录在这里,有兴趣将代码写成插件与npm包可以留言. 体验地址:http://owenliang.github.io/pull ...

  3. 基于SwiperJs的H5/移动端下拉刷新上拉加载更多的效果

    最早时,公司的H5项目中曾用过点击一个"加载更多"的DOM元素来实现分页的功能,后来又用过网上有人写的一个上拉加载更多的插件,那个插件是页面将要滚动到底部时就自动请求数据并插入到页 ...

  4. 基于SwiperJs的H5/移动端下拉刷新上拉加载更多

    最早时,公司的H5项目中曾用过点击一个"加载更多"的DOM元素来实现分页的功能,后来又用过网上有人写的一个上拉加载更多的插件,那个插件是页面将要滚动到底部时就自动请求数据并插入到页 ...

  5. react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)

    1.下拉刷新/上拉加载更多 组件(RefreshListView) src/components/RefreshListView/index.js /** * 下拉刷新/上拉加载更多 组件(Refre ...

  6. 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载

    title: 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 tags: -RecyclerView,下拉刷新,上拉加载更多 grammar_cjkRuby: true - ...

  7. ListView实现Item上下拖动交换位置 并且实现下拉刷新 上拉加载更多

    ListView实现Item上下拖动交换位置  并且实现下拉刷新  上拉加载更多 package com.example.ListViewDragItem; import android.app.Ac ...

  8. [ionic开源项目教程] - 第7讲 实现下拉刷新上拉加载ion-refresher和ion-infinite-scroll

    第7讲 实现下拉刷新上拉加载ion-refresher和ion-infinite-scroll 1.将tab1.html的代码改为如下: <ion-content> <ion-ref ...

  9. ListView下拉刷新上拉加载更多实现

    这篇文章将带大家了解listview下拉刷新和上拉加载更多的实现过程,先看效果(注:图片中listview中的阴影可以加上属性android:fadingEdge="none"去掉 ...

  10. RecyclerView下拉刷新上拉加载(三)—对Adapter的封装

    RecyclerView下拉刷新上拉加载(一) http://blog.csdn.net/baiyuliang2013/article/details/51506036 RecyclerView下拉刷 ...

随机推荐

  1. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  2. ubuntu 14.04中Elasticsearch 2.3 中 Nginx 权限认证

    前言:本文实现了nginx简单保护elasticsearch,类似的保护也可以采用elasticsearch 官方插件shield 一.准备密码 1.确认htpasswd是否已经安装 which ht ...

  3. LaTeX入门教程(二)

    LaTeX(LATEX,音译"拉泰赫")是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用 ...

  4. 算法笔记_015:快速排序(Java)

    目录 1 问题描述 2 解决方案 2.1 快速排序原理简介 2.2 具体编码 1 问题描述 给定一组数据,使用快速排序得到这组数据的非降序排列. 2 解决方案 2.1 快速排序原理简介 引用自百度百科 ...

  5. java 报表到excel

    现加个jar包 http://pan.baidu.com/s/1boe5kXh   vfp8 然后代码 package makeReportToExcel; import java.io.File; ...

  6. mybatis-generator 代码自动生成工具(maven方式)

    由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,mybatis-gennerator插件帮我们自动生成mybatis所需要的 ...

  7. CentOS部署yum本地源和共享

    约定yum本地源的机器IP为192.168.1.100,需要访问共享源的IP为192.168.1.101 关闭并禁止selinux和firewalld 创建本地源 1.上传centos7光盘镜像到指定 ...

  8. JTable,TableModel,DefaultTableModel与AbstractTableModel的小结

    1 表格JTable并不存储自己的数据,而是从表格模型那里获取它的数据 2 TableModel本身是一个interface,在这个interface里面定义了若干的方法,包括了存取表格字段(cell ...

  9. 主成分分析(Principal components analysis)-最大方差解释

    原文:http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html 在这一篇之前的内容是<Factor Analysis> ...

  10. javascript 事件委托 和jQuery事件绑定on、off 和one

    一. 事件委托什么是事件委托?用现实中的理解就是:有100 个学生同时在某天中午收到快递,但这100 个学生不可能同时站在学校门口等,那么都会委托门卫去收取,然后再逐个交给学生.而在jQuery 中, ...