MUI实现上拉加载和下拉刷新的实例分享
这篇文章主要为大家详细介绍了MUI实现上拉加载和下拉刷新效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了MUI实现上拉加载和下拉刷新展示的具体代码,供大家参考,具体内容如下
编写存储过程分页(此处使用T-SQL)
CREATE PROC [dbo].[Common_PageList] ( @tab nvarchar(max),---表名 @strFld nvarchar(max), --字段字符串 @strWhere varchar(max), --where条件 @PageIndex int, --页码 @PageSize int, --每页容纳的记录数 @Sort VARCHAR(255), --排序字段及规则,不用加order by @IsGetCount bit --是否得到记录总数,1为得到记录总数,0为不得到记录总数,返回记录集 ) AS declare @strSql nvarchar(max) set nocount on; if(@IsGetCount = 1) begin set @strSql='SELECT COUNT(0) FROM ' + @tab + ' WHERE ' + @strWhere end else begin set @strSql=' SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ' + @Sort + ') AS rownum, ' + @strFld + ' FROM ' + @tab + ' where ' + @strWhere + ') AS Dwhere WHERE rownum BETWEEN ' + CAST(((@PageIndex-1)*@PageSize + 1) as nvarchar(20)) + ' and ' + cast((@PageIndex*@PageSize) as nvarchar(20)) end print @strSql exec (@strSql) set nocount off;
webApi接口(ADO.NET部分封装了,此处是调用形式)
/// 测试mui下拉刷新 /// </summary> /// <param name="flag"></param> /// <returns></returns> [HttpPost] public object test(JObject data) { using (var db = new DbBase()) { SqlParameter[] arr = { new SqlParameter{ ParameterName="tab",Value=data["tab"].ToString()}, new SqlParameter{ ParameterName="strFld",Value=data["strFld"].ToString()}, new SqlParameter{ ParameterName="strWhere",Value=data["strWhere"].ToString()}, new SqlParameter{ ParameterName="PageIndex",Value=Convert.ToInt32(data["PageIndex"])}, new SqlParameter{ ParameterName="PageSize",Value=Convert.ToInt32(data["PageSize"])}, new SqlParameter{ ParameterName="Sort",Value=data["Sort"].ToString()}, new SqlParameter{ ParameterName="IsGetCount",Value=Convert.ToInt32(data["IsGetCount"])}, }; return RepositoryBase.ExecuteReader(db, "Common_PageList", arr); }
页面实现
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello MUI</title> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <link rel="stylesheet" href="../css/mui.min.css" rel="external nofollow" > <style type="text/css"> </style> </head> <body> <header class="mui-bar mui-bar-nav"> <h1 class="mui-title">下拉刷新(单webview模式)</h1> </header> <p id="pullrefresh" class="mui-content mui-scroll-wrapper"> <p class="mui-scroll"> <ul id="container" class="mui-table-view mui-table-view-chevron"></ul> </p> </p> <ul id="temp" class="mui-table-view" style="display: none;"> <li class="mui-table-view-cell"> <a class="mui-navigate-right"> @name </a> </li> </ul> <script src="../js/mui.js" type="text/javascript" charset="utf-8"></script> <script> /** 数据源分页参数对象 * */ var obj={ tab:'SystemUsers', strFld:'code,Username', strWhere:'1=1', PageIndex:1, PageSize:10, Sort:'Username', IsGetCount:0, pageCount:0 } //webApi服务器接口 var apiUrl="http://192.168.200.114:8123/api/Common/Base/test"; /** * 定义数据源按什么html方式展示,动态生成html字符串的逻辑 **/ var drawHtml=function(data){ var html="" for (var i=0;i<data.length;i++) { var temp=document.getElementById("temp").innerHTML; //模板 html+=temp.toString().replace('@name',data[i].Username); //替换参数叠加 } return html; } mui.ready(function(){ /** MUI配置项 * */ mui.init({ pullRefresh: { container: '#pullrefresh', down: { callback: pulldownRefresh }, //END 下拉刷新 up : { contentrefresh : "正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容 contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容; callback :pullupRefresh //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据; } //END 上拉加载 } }); //统计:数据总数、分页总数 obj.IsGetCount=1; loadData(apiUrl,obj,0); //初始化列表数据(第一页) obj.IsGetCount=0; loadData(apiUrl,obj,0,"down",function(data){ //此处实现动态绘制DOM的逻辑,根据数据源自行处理要展示的html方式 return drawHtml(data); }); }); /* 读取数据源 url:api地址 dataObj:数据源分页查询参数对象 Timeout:指定多少时间后绘制页面DOM展示对象, 动态生成的元素代码包含在一个setTimeout函数里, 用 setTimeout,主要对于下拉刷新间隔时间 loadType:加载方式:up(上拉加载)、down(上拉刷新) drawFunction:回调函数,处理拿到数据源,绘制DOM展示界面的html ,要接收返回的html字符串 * */ var loadData=function(url,dataObj,Timeout,loadType,drawFunction){ mui.ajax(url, { type: "post", data:dataObj, async:false, headers: {'Content-Type': 'application/json'}, success: function(data) { //统计出数据总数 if(dataObj.IsGetCount==1) { obj.pageCount=Math.ceil(parseInt(data[0].Column1)/obj.PageSize) ; return; } setTimeout(function() { //动态绘制出的Dom元素,结合数据展现 var html= drawFunction(data); if(loadType=="up") //上拉加载 { if(obj.PageIndex==obj.pageCount) { //参数为true代表没有更多数据了。 mui('#pullrefresh').pullRefresh().endPullupToRefresh(true); } else { mui('#pullrefresh').pullRefresh().endPullupToRefresh(); } //将下一页数据追加到容器 document.getElementById("container").innerHTML=document.getElementById("container").innerHTML+html; } else if(loadType=="down") //下拉刷新 { // 该方法的作用是关闭“正在刷新”的样式提示,内容区域回滚顶部位置 mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //将第一页数据覆盖到容器 document.getElementById("container").innerHTML=html; //启用上拉加载 mui('#pullrefresh').pullRefresh().enablePullupToRefresh(); } }, Timeout);//END setTimeout(); },//END success(); error: function(xhr, type, errorThrown) { console.log(type); }//END error(); });//END ajax(); }//END loadData(); /** * 下拉刷新具体业务实现 */ function pulldownRefresh() { console.log('重置数据,初始到第一页'); obj.PageIndex=1; loadData(apiUrl,obj,1000,"down",function(data){ //此处实现动态绘制DOM的逻辑,根据数据源自行处理要展示的html方式 return drawHtml(data); }); } //END pulldownRefresh() 下拉刷新函数 /** * 上拉加载具体业务实现 */ function pullupRefresh() { obj.PageIndex++;//当前页累加,加载下一页的数据 console.log("加载第:"+obj.PageIndex+"页"); console.log("页总数:"+obj.pageCount); loadData(apiUrl,obj,1000,"up",function(data){ //此处实现动态绘制DOM的逻辑,根据数据源自行处理要展示的html方式 return drawHtml(data); }); } </script> </body> </html>
以上是MUI实现上拉加载和下拉刷新的实例分享的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Python中的支持向量机(SupportVectorMachine,SVM)是一个强大的有监督学习算法,可以用来解决分类和回归问题。SVM在处理高维度数据和非线性问题的时候表现出色,被广泛地应用于数据挖掘、图像分类、文本分类、生物信息学等领域。在本文中,我们将介绍在Python中使用SVM进行分类的实例。我们将使用scikit-learn库中的SVM模

随着新一代前端框架的不断涌现,VUE3作为一个快速、灵活、易上手的前端框架备受热爱。接下来,我们就来一起学习VUE3的基础知识,制作一个简单的视频播放器。一、安装VUE3首先,我们需要在本地安装VUE3。打开命令行工具,执行以下命令:npminstallvue@next接着,新建一个HTML文件,引入VUE3:<!doctypehtml>

Golang是一门功能强大且高效的编程语言,可以用于开发各种应用程序和服务。在Golang中,指针是一种非常重要的概念,它可以帮助我们更灵活和高效地操作数据。指针转换是指在不同类型之间进行指针操作的过程,本文将通过具体的实例来学习Golang中指针转换的最佳实践。1.基本概念在Golang中,每个变量都有一个地址,地址就是变量在内存中的位置。

Oracle实例数量与数据库性能关系Oracle数据库是业界知名的关系型数据库管理系统之一,广泛应用于企业级的数据存储和管理中。在Oracle数据库中,实例是一个非常重要的概念。实例是指Oracle数据库在内存中的运行环境,每个实例都有独立的内存结构和后台进程,用于处理用户的请求和管理数据库的操作。实例数量对于Oracle数据库的性能和稳定性有着重要的影响。

VAE是一种生成模型,全称是VariationalAutoencoder,中文译作变分自编码器。它是一种无监督的学习算法,可以用来生成新的数据,比如图像、音频、文本等。与普通的自编码器相比,VAE更加灵活和强大,能够生成更加复杂和真实的数据。Python是目前使用最广泛的编程语言之一,也是深度学习的主要工具之一。在Python中,有许多优秀的机器学习和深度

随着互联网的迅速发展,数据已成为了当今信息时代最为重要的资源之一。而网络爬虫作为一种自动化获取和处理网络数据的技术,正越来越受到人们的关注和应用。本文将介绍如何使用PHP开发一个简单的网络爬虫,并实现自动化获取网络数据的功能。一、网络爬虫概述网络爬虫是一种自动化获取和处理网络资源的技术,其主要工作过程是模拟浏览器行为,自动访问指定的URL地址并提取所

随着互联网的普及,验证码已经成为了登录、注册、找回密码等操作的必要流程。在Gin框架中,实现验证码功能也变得异常简单。本文将介绍如何在Gin框架中使用第三方库实现验证码功能,并提供示例代码供读者参考。一、安装依赖库在使用验证码之前,我们需要安装一个第三方库goCaptcha。安装goCaptcha可以使用goget命令:$goget-ugithub

生成对抗网络(GAN,GenerativeAdversarialNetworks)是一种深度学习算法,它通过两个神经网络互相竞争的方式来生成新的数据。GAN被广泛用于图像、音频、文字等领域的生成任务。在本文中,我们将使用Python编写一个GAN算法实例,用于生成手写数字图像。数据集准备我们将使用MNIST数据集作为我们的训练数据集。MNIST数据集包含
