微信中iscroll5下拉刷新的应用

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">最近在微信中做一个应用,要用到滚动刷新功能,先找了个iscroll4,配合一个辅助类用的还不错,但是在android下面很卡,于是换iscroll5,结果各种坑啊,上网搜索了一下,发现这位仁兄的文章http://blog.csdn.net/cdnight/article/details/44963063,运行了一下能跑起来,但还是有问题,我总结了一下,把一些经验和大家分享一下:</span>

1.在手机微信中click事件无效

这是由于iscroll5屏蔽了事件冒泡,如果简单的的允许事件冒泡,那么在微信中下拉就会出现微信自带下拉效果,你的自定义事件就失效了,正确方法是在option里面设置

preventDefaultException: { tagName: /^(P|B|H1|H2|DIV|A|INPUT|TEXTAREA|BUTTON|SELECT)$/ }

,这P|B|H1|H2|DIV|A就是我加的,试一试,ok!

2.下拉后没有loading效果

我没找到文档如何设置这个,直接修改的源码,找到resetPosition函数加上一段

		if ( !this.hasVerticalScroll || this.y >= 60 ) {
			y = 60;
		} else if (this.y>0 && this.y < 60) {
		    y = 0;
		}

这样下拉回弹到60的时候,就可以出现loading了,当然还要写辅助代码

 myScroll.on("slideDown", function () {
            if (this.y > 60) {
                downIcon.addClass("loading");
                setTimeout(function () {
                    if (_slidedownEvent != null) {
                        _slidedownNotOver = true;
                        _slidedownEvent();
                    }
                    else {
                        _slidedownNotOver = false;
                        myScroll.scrollTo(0, 0, 200, IScroll.utils.ease.bounceEasing);
                        downIcon.removeClass("loading");
                        $("#scroller-pullUp").hide();
                    }
                }, 1000);

            }
        });

判断在60的时候出现loading图标,然后异步执行_slidedownEvent事件,做一些ajax获取数据的操作,然后再异步回来设置

 myScroll.scrollTo(0, 0, 200, IScroll.utils.ease.bounceEasing);

滚动复原,这样就ok了

3.数据太少没有滚动条的时候自动隐藏提示图片

这个需要修改momentum函数,加入一个判断即可

if (lowerMargin<0 && destination < lowerMargin )

最后我封装了一下这个js,使其具备ajax数据拉取的能力,js代码如下:

JmobileExt.Listview.initializtion("activelist.ashx", null, "#activities", "#listviewdot");

初始化Listview控件,"activelist.ashx"是获取数据的url地址,null是data,post的时候用的,"#activities"是listview控件id, "#listviewdot"是dot模板

JmobileExt.Listview.GetFirstListData();

获取第一页json数据

                JmobileExt.Listview.bindEvent(null,null,null,
                   function (sender) {
                       var data=sender.Data;
<span style="white-space:pre">			</span>sender.Cancel=true;
                   }
               );

JmobileExt.Listview.bindEvent绑定四个事件post前下拉,post前上拉,post后下拉,post后上拉,sender.Data在post前可以组织post数据,在post后可以获取服务器返回的json数据,如果设置sender.Cancel=true,那么就不会提交和显示。

我把代码整理了一下,点击打开链接 ,项目是用jmobile和dot模板开放的,必须运行在web服务器环境中,直接在文件浏览器中打开是没有效果的。

时间: 2024-08-29 12:07:00

微信中iscroll5下拉刷新的应用的相关文章

Android中ListView下拉刷新的实现

ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理一下,供大家参考.那我就不解释,直接上代码了. 这里需要自己重写一下ListView,重写代码如下: [java] view plain copy package net.loonggg.listview; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import androi

微信小程序 下拉刷新 上拉加载

1.下拉刷新  小程序页面集成了下拉功能,并提供了接口,我们只需要一些配置就可以拿到事件的回调. 1. 需要在 .json 文件中配置. 如果配置在app.json文件中,那么整个程序都可以下拉刷新.如果写在具体页面的.json文件中,那么就是对应的页面,可以下拉刷新. 具体页面的.json文件: 1 { 2 "enablePullDownRefresh": true 3 } app.json文件: 1 "window": { 2 "enablePullD

Android中实现下拉刷新

需求:项目中的消息列表界面要求实现类似sina微博的下拉刷新: 思路:一般的消息列表为ListView类型,将list加载到adapter中,再将adapter加载到 ListView中,从而实现消息列表的展示.而下拉刷新要求给消息列表加一个头部,其中有图片(向上/向下箭头)和提示字样(下拉刷新/松开刷新),从 而我们需要做的事情:1.需要做一个head.xm来实现头部的样式定义:2.需要自定义一个继承了ListView的MsgListView,在该类中 将head加在MsgListView对象

【转载】Android中ListView下拉刷新的实现

在网上看到一个下拉刷新的例子,很的很棒,转载和更多的人分享学习 原文:http://blog.csdn.net/loongggdroid/article/details/9385535 ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理一下,供大家参考.那我就不解释,直接上代码了. 这里需要自己重写一下ListView,重写代码如下: [java] view plaincopy package net.loonggg.listview; import jav

Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新

 <Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新> 下拉刷新在如今移动开发中应用如此广泛和普遍,以至于谷歌干脆在SDK中给予支持.在android-support-v4包中,谷歌增加了SwipeRefreshLayout,该组件提供基础的下拉刷新表现能力和开放出来供开发者调用的基本接口.现在给出一个简单的代码例子加以说明. 代码工程简要说明:以一个SwipeRefreshLayout包裹ListView,SwipeRefreshLayout接管List

Android 修改源码自定义SwipeRefreshLayout样式——高仿微信朋友圈下拉刷新

修改源码自定义SwipeRefreshLayout样式——高仿微信朋友圈下拉刷新 原文地址:https://www.cnblogs.com/zhujiabin/p/8194996.html

微信小程序~下拉刷新PullDownRefresh

一.onPullDownRefresh回调 代码: // http://itlao5.com onPullDownRefresh: function () { console.log('onPullDownRefresh') this.queryData(id) }, 二.enablePullDownRefresh支持 然而=下拉触发不了js回调,需要再json中配置支持下拉刷新,即: "enablePullDownRefresh": true // 请注意是true,不是"

微信小程序下拉刷新和上拉加载

1.上拉加载和下拉刷新 Wxml文件 <scroll-view scroll-top="{{scrollTop}}" scroll-y="true" style="height:{{scrollHeight}}px;" bindscrolltolower="bindDownLoad" bindscroll="scroll">    <block wx:for="{{goodsLi

android中listView下拉刷新

Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展ListView:下拉刷新的ListView.    下拉刷新界面最初流行于iphone应用界面,如图:     然后在Android中也逐渐被应用,比如微博,资讯类.    所以,今天要实现的结果应该也是类似的,先贴出最终完成效果,如下图,接下来我们一步一步实现. 1. 流程分析    下拉刷新最主要