• 13、下拉刷新


    为实现下拉刷新功能,大多H5框架都是通过DIV模拟下拉回弹动画,在低端android手机上,DIV动画经常出现卡顿现象(特别是图文列表的情况); 通过双webview解决这个DIV的拖动流畅度问题;拖动时,拖动的不是div,而是一个完整的webview(子webview),回弹动画使用原生动画;在iOS平台,H5的动画已经比较流畅,故依然使用H5方案。两个平台实现虽有差异,但经过封装,可使用一套代码实现下拉刷新。

    第一步: 创建子页面,因为拖动的其实是个子页面的整体

    mui.init({ 
        subpages:[{ 
        url:pullrefresh-subpage-url,//下拉刷新内容页面地址 
        id:pullrefresh-subpage-id,//内容页面标志
         styles:{ top:subpage-top-position,//内容页面顶部位置,需根据实际页面布局计算,若使用标准mui导航,顶部默认为48px; .....//其它参数定义 
         
        }] 
    });

     

    第二步:内容页面需按照如下DOM结构构建

    第三步:通过mui.init方法中pullRefresh参数配置下拉刷新各项参数

    mui.init({ 
        pullRefresh : { 
            container:"#refreshDiv",//下拉刷新容器标识,querySelector能定位的css选择器均可,比如:id、.class等    
            down : {
                contentdown : "下拉可以刷新",//可选,在下拉可刷新状态时,下拉刷新控件上显示的标题内容 
                contentover : "释放立即刷新",//可选,在释放可刷新状态时,下拉刷新控件上显示的标题内容 
                contentrefresh : "正在刷新...",//可选,正在刷新状态时,下拉刷新控件上显示的标题内容 
                callback : fn //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;
             } } 
    });

     

    第四步:设置执行函数

    function fn() {
         //业务逻辑代码,比如通过ajax从服务器获取新数据; ...... //注意,加载完新数据后,必须执行如下代码,注意:若为ajax请求,则需将如下代码放置在处理完ajax响应数据之后  
          
         mui('#pullrefreshContainer').pullRefresh().endPulldownToRefresh();  //这行代码会隐藏掉 正在加载... 容器
          
    }
     
     
     
  • 相关阅读:
    03把IL编译成可执行文件
    02值类型
    报错:该字符串未被识别为有效的DateTime
    01使用ILDasm.exe将可执行文件反编译成IL代码
    MVC自定义路由02-实现IRouteConstraint限制控制器名
    MVC自定义路由01-为什么需要自定义路由
    报错:System.Data.Entity.Infrastructure.DbUpdateException 更新条目时出错
    输入网址背后发生的故事
    使用jquery加载部分视图02-使用$.ajax()
    使用jquery加载部分视图01-使用$.get()
  • 原文地址:https://www.cnblogs.com/zhouyuxiang/p/4696283.html
Copyright © 2020-2023  润新知