本代码基于Vue的架构

1.首先,要滚动的内容放在一个‘id=box’ 的div里,对div进行scroll事件的监听

  1. <div id="box" class="midea2" @scroll="boxScroll" style="-webkit-overflow-scrolling: touch; flex=1" :style="{height: appHeight + 'px'}">
  2. </div>
  1. <load-more style="width: 100%; margin-top: 20px;" v-if="questionList.length !== 0" v-show="!isLogic" :tip="loadText" :show-loading="showLoad"></load-more>

参数配置:

  1. const perpage = 10
  1. hasMore: true, // 标记是否还有数据
  2. loadText: '', // loading时的文字
  3. showLoading: false, // 展示界面loading
    pageNo: 1,
    pageLimit: perpage,
    totalCount: 0,

部分解释:

在移动端上,在你用overflow-y:scorll属性的时候,你会发现滚动的效果很木,很慢,这时候可以使用-webkit-overflow-scrolling:touch这个属性,让滚动条产生滚动回弹的效果,就像ios原生的滚动条一样流畅。

首先,页面初始化,前端分页,把全部列表数据赋给一个变量: this.wholeList

引入要引用的:

  1. import _ from 'lodash'

boxScroll监听事件:

  1. // 监听box滚动
  2. boxScroll (e) {
  3. let box = e.target
  4. // console.log('box is scrolling')
  5. if (box.scrollHeight - box.scrollTop === box.offsetHeight && box.scrollTop !== 0) {
  6. this.showLoad = true
  7. console.log('bottom~~')
  8. this._checkMore()
  9. setTimeout(this.searchMore, 700)
  10. // this.searchMore()
  11. }
  12. },

检测是否还有'下一页'的方法:

  1. _checkMore () {
  2. // const resident = data.data
  3. // if (resident.myJoinList.length < perpage || (resident.paginator.pageNo - 1) * perpage + resident.myJoinList.length > resident.paginator.totalCount) {
  4. if (parseInt(this.totalCount / perpage) + 1 === this.pageNo) {
  5. this.hasMore = false
  6. this.showLoad = false
  7. this.loadText = '暂无更多数据'
  8. }
  9. },

查询‘下一页’数据的方法:

  1. searchMore () {
  2. if (!this.hasMore) {
  3. return
  4. }
  5. this.pageNo++
  6. this.queryQuestionList()
  7. },

对列表进行前端分页:

  1. // 对问卷列表前端分页
  2. queryQuestionList () {
  3. if (!this.isFrontPage) {
  4. return
  5. }
  6. // this.questionList = _.cloneDeep(this.wholeList).splice(0, perpage * (this.pageNo + 1))
  7. this.questionList = this.questionList.concat(_.cloneDeep( this.wholeList ).splice(this.questionList.length, perpage * (this.pageNo + 1)))
  8. if (Number(this.isMyAnswer) === 1) {
  9. this.arrangeAnswer()
  10. }
  11. this._checkMore()
  12. },

注: this.questionList  表示,页面上展示的列表

this.wholeList 表示,查询出来的所有列表

【转载】H5页面列表的无线滚动加载(前端分页)的更多相关文章

  1. 移动设备的HTML页面中图片实现滚动加载

    如今移动互联网风靡全球,移动页面的元素也是丰富多彩,一个移动页面的图片超过10张已经是再正常不过的事情了.但是相对,很多移动用户还停留在2G,3G这样的网络中.那么这样带宽的用户,在浏览这样的页面时, ...

  2. 移动端web页面列表类上拉加载,查看详情,iframe嵌套第三方页面遇到的问题以及解决办法

    1.移动端上拉加载 网上有很多成熟的插件,比如iscroll.在这里介绍一下用jquery和js写的上拉加载方法.使用原生的去写上拉加载更多需要三个高度去做对比,以新闻类列表举例,首先需要整个dom的 ...

  3. H5页面实现一个Audio标签加载多个音频文件,并进行播放和展示音频长度

    最近微信项目中有需求,要将微信端发送过来的amr格式的语音文件,在项目中的页面上进行展示和播放,实现方式如下: 1.首先java后台收到微信端的消息推送的时候,使用 ffmpeg将amr格式的音频文件 ...

  4. h5页面列表滚动加载数据

    h5列表滚动加载数据很常见,以下分享下今天做的案例: 前言 这个效果实现需要知道三个参数 1. scrollTop -- 滚动条距离顶部的高度 2. scrollHeight -- 当前页面的总高度( ...

  5. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)

    新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...

  6. 使用infinite-scroll实现Ghost博文列表的滚动加载

    Ghost博客系统默认提供的博文列表为传统的翻页方式(通过点击上一页.下一页等按钮来切换),随着移动客户端的发展,瀑布流式的滚动加载方式得到广泛应用,有效地提高了用户浏览信息的流畅度.下面详述如何通过 ...

  7. 不想分页怎么办??-->页面数据的滚动加载

    在前几天的一次前台数据展示的时候 为了更好的用户的体验 就想着做一个数据的滚动加载功能 于是简单的查询了网上的实现方式 基本都是在页面加载的时候绑定scroll事件 然后判断页面触底的时候 进行aja ...

  8. 基于JQuery实现滚动到页面底端时自动加载更多信息

    基于JQuery实现滚动到页面底端时自动加载更多信息 关键代码: 代码如下: var stop=true; $(window).scroll(function(){ totalheight = par ...

  9. 滚动加载|页面滑到底部加载数据|jquery.endless-scroll插件|使用demo

    <html> <head> <link rel="dns-prefetch" href="http://i.tq121.com.cn&quo ...

随机推荐

  1. RxSwift学习笔记1:RxSwift的编程风格

    第一天:简单体验与RxSwift的编程风格 import UIKit//导入Rx相关框架 import RxSwift import RxCocoa struct Music { let name:S ...

  2. Swift3 使用系统UIAlertView方法做吐司效果

    /** *显示弹出信息 */ class func showAlertMessage(_ str:String,showtime Num:Double){ let alert = UIAlertVie ...

  3. Dacapao 实验集(9.12 版本) 能不能给个网址?【内存分析实验】

    网址 Dacapao 实验集 引用 以前看到的文章,如果使用这个基准程序,引用文献很多时候是一篇论文: Blackburn S M, Garner R, Hoffmann C, et al. The ...

  4. [C#]Dapper学习笔记

    1.安装,直接用nuget搜索Dapper就行,不过只支持框架4.5.1 2.数据库测试表 CREATE TABLE [dbo].[Student]( [ID] [bigint] NULL, ) NU ...

  5. Select count(*)、Count(1)、Count(0)的区别和执行效率比较

    记得很早以前就有人跟我说过,在使用count的时候要用count(1)而不要用count(*),因为使用count(*)的时候会对所有的列进行扫描,相比而言count(1)不用扫描所有列,所以coun ...

  6. 记一次线上事故的JVM内存学习

    今天线上的hadoop集群崩溃了,现象是namenode一直在GC,长时间无法正常服务.最后运维大神各种倒腾内存,GC稳定后,服务正常.虽说全程在打酱油,但是也跟着学习不少的东西. 第一个问题:为什么 ...

  7. SpringCloud之Fegin

    Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易.使用Fegin创建一个接口并对它进行注解.它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持 ...

  8. pcre库

    pcre : perl compatible  regular expressions , perl 兼容正则表达式 www.pcre.org 按装pcre是为了使Nginx支持具备URI重写功能的 ...

  9. Vue 项目配置

    配置Vue的app项目首先需要配置本地环境. 1.下载node.js并且安装.(根据自己电脑参数进行选择) 打开cmd,检查是否安装成功. 分别输入: node -v npm -v 结果如图正确显示出 ...

  10. navicat的下载、激活

    1.安装   navicat  (自己可以去下载最新版本),双击安装: 2.激活  navicat , 双击运行即可激活成功! 3.简单快捷高效!