vue版本

<template>
<div class="com-vscroll">
<slot name="mcontent"></slot>
<div class="loadcss">
<img src="https://sta.caotangteach.com/static/com.mianfeinovel/images/common/mianfeinovel_loading.gif" class="loadimg" v-if="loading&&isFullLoad==1">
<div v-if="isFullLoad==1">正在加载更多...</div>
<div v-if="isFullLoad==0">没有更多数据了</div>
</div>
</div>
</template>
<script>
export default {
name: "ComVscroll",
props: {
isFullLoad: {
type: Number,
default:
},
watchCount: {
type: Number,
default:
}
},
data() {
return {
loading: true,
};
},
methods: {
fetchData() {
if (this.loading) {
return;
}
if (this.loading==false) {
this.loading = true;
this.$emit("onPullingUp");
}
},
scrollEventFunc() {
//当打开一个页面,一定会执行这里
var a = document.documentElement.clientHeight || document.body.clientHeight;
var b = document.documentElement.scrollTop || document.body.scrollTop;
var c = document.documentElement.scrollHeight || document.body.scrollHeight;
if (a + b + >= c) {
this.fetchData();
}
}
},
watch: {
watchCount(value) {
//根据上一页的结果,唯一能再次发接口的条件
this.loading = false;
}
},
mounted() {
if (window.addEventListener) {
window.addEventListener("scroll", this.scrollEventFunc, false);
} else if (window.attachEvent) {
window.attachEvent("scroll", this.scrollEventFunc);
}
}
};
</script> <style lang="stylus" scoped>
.com-vscroll {
.loadcss {
display: -webkit-box;
-webkit-box-pack: center;
height: 82px;
line-height: 82px;
font-size: .32rem;
color: #5D646E;
.loadimg {
margin-right: 10px;
margin-top :2px;
height: .32rem;
width: .32rem;
}
}
}
</style>

页面引用的时候:

      <ComVscroll @onPullingUp="ClickPullup" :isFullLoad="hasMoreload"  :watchCount="watchCount">
<div slot="mcontent">
<div class="page-mid">
<div class="mid-content">
<ComVlist :remenOptions="remenOptions" :hasMidBtn="identity<4" :dlist="Array.from(pageDatas[mtype])" :dadianParams="dadianParams"></ComVlist>
</div>
</div>
</div>
</ComVscroll>

第一次接口由页面的created或者路由监听执行。以后的分页才由scroll执行。

jsp版如下:

loadMore();   //主动执行第一次
function scrollEventFunc() {
var a = document.documentElement.clientHeight || document.body.clientHeight;
var b = document.documentElement.scrollTop || document.body.scrollTop;
var c = document.documentElement.scrollHeight || document.body.scrollHeight;
if (a + b + >= c) {
try { loadMore(); } catch (e) { }
}
}
if (window.addEventListener) {
window.addEventListener("scroll", scrollEventFunc, false);
} else if (window.attachEvent) {
window.attachEvent("scroll", scrollEventFunc);
}
var pageNum = ; //页码
var pageSize = ; //每页加载条数
var lastPage = false; //最后一页
var loading = false; //正在加载
var rankIndex=;
function loadMore(){
if (lastPage) { //已经是最后一页了,不再请求
return;
}
if (loading) { //正在加载
return;
}
loading = true;
pageNum++;
$('.nothing').hide();
$('.loading').show();
if (sextype==) {
var fenpin="man";
}else{
var fenpin="woman";
}
var url = window.J_search.buildAjaxUrl("/aa/aa/aa/list/"+pageSize+"/"+pageNum+"?sex="+fenpin);
$.ajax({
type: 'GET',
url: url,
async: false,
timeout: ,
success: function (returnData) {
if (returnData.respCode == "") {
var dataList=returnData.data;
if (dataList == null || dataList.length == ) {
lastPage = true;
loading = false; //加载结束
$(".nothing").show();
$('.template-207').hide();
return;
}
var cnxhStr='';
if(dataList&&dataList.length>) {
$.each(dataList, function (i, n) {
rankIndex++;
var seriaType=(n.serialStatus == 'SERIALIZE')?"连载中":"已完结";
//判断二级分类是否为空
var label = n.label;
if(label == null || label == ''){
label = '其他';
}
cnxhStr += '<div class="topPart book_top_1 rank' + i + ' getRank" onclick=\'click_Event("' + n.host + '","' + n.bookId + '","' + n.id + '","' + n.bookName + '","' + n.authorName + '","","","0","猜你喜欢","' + (rankIndex) + '")\'><div class="imgBox" ><img src="https://st.quanbennovel.com/static/images/default.png" data-src="' + n.sourceImageUrl + '"></div>';
cnxhStr += '<div class="des"><p class="name">' + n.bookName + ' </p><p class="details"> ' + n.description + '</p><div class="arAndpeo clearfix"><span class="author"> ' + n.authorName + '</span><span class="desLabel"><i class="firstLabel"> ' + label + ' </i></span></div></div></div>';
});
if (sextype==) {
$("#man .cnxh").append(cnxhStr);
}
if (sextype==) {
$("#woman .cnxh").append(cnxhStr);
}
try {
$(document).trigger('ajax:finish', pageNum - ); //处理图片加载失败
} catch (err) { } loading = false; //加载结束
lazyload("container"); //图片懒加载
} }else {
loading = false; //加载结束
return;
}
},
error: function (xhr, type, textStatus) {
loading = false;
}
});
}

分页组件vue和jsp版本的更多相关文章

  1. 基于avalon1.4.x ----分页组件编写

    avalon分页组件 (1.4.x版本) 随着avalon2的推出,avalon1的官网已经不再维护了,现在似乎是找不到avalon 1.4版本的官方文档了,所以本文章所有的内容均不保证正确性,只能保 ...

  2. 手把手教你使用Vue/React/Angular三大框架开发Pagination分页组件

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎S ...

  3. 基于Vue.js的表格分页组件

    有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更一篇文章,分享一个自己编写的一个Vue的小组件,名叫BootPage. 不了解Vue.js的童鞋 ...

  4. 基于Vue封装分页组件

    使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} ...

  5. Vue.js的表格分页组件

    转自:http://www.cnblogs.com/Leo_wl/p/5522299.html 有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更 ...

  6. vue分页组件table-pagebar

    之前一直接触都是原始的前端模型,jquery+bootstrap,冗杂的dom操作,繁琐的更新绑定.接触vue后,对前端MVVM框架有了全新的认识.本文是基于webpack+vue构建,由于之前的工作 ...

  7. asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题

    刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...

  8. 基于 bootstrap 的 vue 分页组件

    申手党点这里下载示例 基于 bootstrap 的 vue 分页组件,我想会有那么一部分同学,在使用Vue的时候不使用单文件组件,因为不架设 NodeJS 服务端.那么网上流传的 *.vue 的各种分 ...

  9. Vue 2.0 pagination分页组件

    最近写了一个分页组件,效果如下图: f-pagination.js文件 Vue.component('f-pagination',{ template:'<div class="fPa ...

随机推荐

  1. iOS 开发 - iOS 8 以后使用UIAlertController的使用

    最近在写项目的时候,发现使用alertview和actonsheet会报警告,所以就查了一下,发现ios 9 以后会使用UIAlertController来进行操作, 具体代码如下: 1.声明 #im ...

  2. PHP-002

    PHP URL重写 怎样在IIS环境下配置Rewrite规则_百度经验 http://jingyan.baidu.com/article/c33e3f485a7c74ea15cbb50e.html W ...

  3. conn.setAutoCommit(false)数据回滚设置

    前言:介绍一点爱混淆的概念. 1.mysql中默认 autocommit=1:事物自动提交. 可通过 select @@autocommit;查看 但是是设置事务自动提交模式为set autocomm ...

  4. Python 入门(七)函数

    什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...

  5. Java之类型的转换

    1.String 类型转化为 int 类型,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换. int a = Integer.parseInt(st ...

  6. Linux之MySQL

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  7. 利用html实现类似于word自动生成的目录的效果

    在word中的自动生成目录当中,我们会看到是这样的目录结构: 嗯,自动生成固然是简单,但是在html当中,却没有一个合适的标签来去做.今天后台导出PDF的时候告诉我,他需要用html做一个这样的结构, ...

  8. 【PHP】通过header发送自定义数据

    发送header: 我们定义了三个参数,token.language.region,放入header发送过去 <?php $url = 'http://www.example.com'; $he ...

  9. request.get... getHeader 能取得的信息 参数

    转载▼   StringTokenizer st = new StringTokenizer(agent,";"); st.nextToken(); //得到用户的浏览器名 Str ...

  10. 【BZOJ2300】[HAOI2011]防线修建 set维护凸包

    [BZOJ2300][HAOI2011]防线修建 Description 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可 ...