vue从入门到放弃--- 滚动加载
来源:互联网 发布:js实现页面加载动画 编辑:程序博客网 时间:2024/05/18 03:12
这里用的是
饿了么Mint-Ul里的Infinite scroll.
需要后台 返回一个总数
<template> <div> <div class="liveQA_top" v-if="!noJob"> <div class="liveQA_top_tit"> <p class="liveQA_tit"> <span> 职位列表 </span> </p> </div> <div class="search"> <div id="lt"> <input type="text" placeholder="搜索职位" class="liveQA_searchInp" v-model="search" @keyup.enter="clearJob"> </div> <div id="rt"> <a class="liveQA_searchbtn" @click="clearJob()"> 搜索 </a> </div> </div> </div> <div class="live_career"> <div v-if="noJob" class="nojob"> 暂无职位 </div> <div class="page-infinite"> <div class="page-infinite-wrapper"> <ul class="page-infinite-list" v-infinite-scroll="loadMore" infinite-scroll-disabled="jobloading" infinite-scroll-distance="50"> <li v-for="(career,index) in careers" class="page-infinite-listitem"> <a v-bind:href="careers[index].PositionURL"> <div class="live_career_box"> <div class="live_career_tit"> <span> {{ careers[index].JobName }} </span> <a class="live_career_href" v-bind:href="careers[index].PositionURL"> 申请 </a> </div> <div class="live_career_txt"> {{ careers[index].CityName}} {{careers[index].WorkingExp}} {{careers[index].EduLevelT}} </div> </div> </a> </li> <div class="clear"></div> </ul> <!--Careers--> <div class="loadwrap" ref="loadwrap" style="height:1.7rem;" v-if="showLoading"> <p v-if="allLoaded" class="nolive"> 我是有底线的 </p> <p v-if="loadGif" class="page-infinite-loading"> 加载中... <mt-spinner type="fading-circle"> </mt-spinner> </p> </div> <div class="clear"> </div> </div> </div> </div> </div></template><script> import {liveCareer}from '@/api'; export default { data() { return { careers:[], search: this.search, jobloading: false, //无限滚动被禁用 page: 2, //传递页数 totrue: false, //控制停止滚动 noJob: false, //没有数据 showLoading: true, //是否显示加载中 allLoaded: false, //加载完毕 loadGif: false //loading图显示隐藏 }; }, methods: { /* 关键字搜索职位 */ clearJob() { this.careers = []; this.page = 1; this.totrue = true; this.jobloading = false; this.loadMore(); }, /* 加载第一页 */ async liveCareer() { this.careers = []; let params = { szid: this.$route.query.SzId == "null" ? "": this.$route.query.SzId, xzid: this.$route.query.XzId == "null" ? "": this.$route.query.XzId, pageNum: 1, kw: this.search ? this.search: "", type: 2 } let res = await liveCareer(params); if (res.JobList.length > 0) { this.careers = res.JobList; if (res.TotalRowCount <= 10) { this.allLoaded = true; this.noJob = false; } if (res.PageCount > 1) { this.showLoading = true; this.loadGif = true; this.totrue = true; } } else { this.showLoading = false; this.noJob = true; } }, /* 加载职位 */ loadMore() { this.jobloading = true; let vm = this; if (this.totrue) { let params = { szid: this.$route.query.SzId == "null" ? "": this.$route.query.SzId, xzid: this.$route.query.XzId == "null" ? "": this.$route.query.XzId, pageNum: this.page, kw: this.search ? this.search: "", type: 2 } liveCareer(params).then(res =>{ var list1 = res.JobList; var count = res.PageCount; if (vm.careers.length == 0) { vm.careers = list1; } else { if (this.page<= parseInt(count)){ var list2 = vm.careers; vm.careers = list2.concat(list1); } else { this.totrue = false; this.loadGif = false; this.allLoaded = true; } } this.page++; setTimeout(() => { vm.jobloading = false; }, 1000); }); } else { this.jobloading = false; } } }, created() { this.liveCareer(); } }</script>
图片错误处理
<img :src="live.PicUrl || proxyImg" class="livelogoUrl" :onerror="proxyImgError"> export default { data() { return { lives:[], proxyImg:require('../assets/videoface.jpg'), proxyImgError: 'this.src="' + require('../assets/videoface.jpg') + '"' }; },
阅读全文
0 0
- vue从入门到放弃--- 滚动加载
- Vue源码 --- 从入门到放弃
- vue从入门到放弃---Vuex vueBus
- Vue.js2.0从入门到放弃---入门实例
- vue从入门到放弃 --- 真的是入门
- vue从入门到放弃---axios 和 rap模拟数据
- vue从入门到放弃--- 时间戳 跨域
- vue从入门到放弃--- 父子组件通信
- Vue.js2.0从入门到放弃---入门实例(一)
- Vue.js 2.0从入门到放弃---入门实例(二)
- Vue.js2.0从入门到放弃---入门实例(三)
- Vue.js2.0从入门到放弃---入门实例(一)
- Vue.js 2.0从入门到放弃---入门实例(二)
- Vue.js2.0从入门到放弃---入门实例(三)
- npm的安装及Vue.js2.0从入门到放弃---入门实例(一)
- Vue.js 2.0从入门到放弃---入门实例(二)
- Freemarker 从入门到放弃
- kmp从入门到放弃
- Python中的数据类型
- Python中的字典详解
- Java中的 多线程编程
- C语言实现---学生成绩管理系统
- Python递归实现汉诺塔
- vue从入门到放弃--- 滚动加载
- kafka+storm+hbase
- HBase shell 命令。
- Hive shell 命令。
- 决策树---ID3算法(介绍及Python实现)
- scala实现彩票算法
- Spark编程模型(RDD编程模型)
- Spark Streaming中的操作函数讲解
- MapReduce框架结构与运行流程