下滑加载更多js_vue.js怎么实现滑动到底部加载更多数据效果?
vue.js怎么实现滑动到底部加载更多数据效果?下面本篇文章给大家简单介绍一下vue实现滑动到底部加载更多效果。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
本文实例为大家分享了vue实现滑动到底部加载更多的具体代码,供大家参考,具体内容如下
思路:
如果可视区的高度域dom元素的getBoundingClientRect().bottom高度相同说明已经到了底部,可以实现加载了
template:
{{server[0].companyName}}
致电客服
{{activeIndex}}/{{server[0].thUintroduceImg.split(',').length}}
{{server[0].thUintroduceText}}
...... 展开
全部商品
{{item.pTitle}}
已售{{item.pSaleNums}}件
价格登录可见
¥{{item.uPrice}}
加载中,请稍后
没有更多数据了
script:
import {
Swipe,
SwipeItem,
Popup
} from 'mint-ui'
export default {
data: () => ({
server: [],
page: 1,
clientHeight: 0,
el: {},
isbottom: 0,
show: true,
activeIndex: 1
}),
created() {
this.getServer()
},
beforeDestroy() {
let title = document.querySelector("#title")
title.style.background = "#6a7d8f";
let arr = document.querySelector(".is-left")
arr.style.color = "#fff"
},
computed: {
isMemberId() {
return this.$store.state.isMemberId
}
},
mounted() {
this.clientHeight = document.documentElement.clientHeight
this.$nextTick(() => {
let title = document.querySelector("#title")
title.style.background = "#fff";
let arr = document.querySelector(".is-left")
arr.style.color = "#333"
this.el = this.$refs.my_pull;
window.addEventListener('scroll', this.handleScroll)
})
},
methods: {
callCustomer() {
let msg = this.server[0].thServicePhone;
$App.callCustomer(msg);
},
swipeChange() {
this.activeIndex = this.$refs.swipe.index + 1
},
hidden() {
let el = document.querySelector(".info1")
el.style.height = "auto"
this.show = false
},
pushInfo(item) {
this.$store.dispatch("newshoppingInfo", item)
console.log(this.$store.state.shoppingInfo);
this.$router.push({
path: "/shooping/shoopingInfo",
})
},
handleScroll() {
let a = this.el.getBoundingClientRect().bottom;
a = Math.ceil(a);
if (a == this.clientHeight) {
this.isbottom = -1
this.page++
this.getServer()
}
},
// 获取后台数据
getServer() {
$App.showWebActivity();
this.$http.post(this.root + 'agriculture/xxxxxxxxx', {
key: this.zkey,
code: this.zcode,
page: this.page,
rows: 4,
townsid: sessionStorage.getItem("villageId"),
pUid: sessionStorage.getItem("shoppingUid")
}, {
emulateJSON: true
}).then((res) => {
$App.dismissWebActivity()
if (res.body.code == 100) {
if (this.page == 1) {
this.server = res.body.list.rows;
} else {
this.server = this.server.concat(res.body.list.rows)
}
if (res.body.list.rows.length >= 4) {
this.isLast = false
} else {
this.isLast = true;
this.isbottom = 1
window.removeEventListener('scroll', this.handleScroll)
}
} else {
$App.toastWebActivity(res.body.message)
console.log(res)
}
}, (err) => {
$App.dismissWebActivity()
})
},
},
}
style:
.content {
.isbottom {
display: flex;
align-items: center;
justify-content: center;
padding: 15px 0;
color: #999;
i {
font-size: 30px;
animation: rotate 1s infinite;
}
span {
color: #ccc;
padding-left: 15px;
}
}
.logo {
background: #fff;
padding-bottom: 15px;
div {
&:nth-child(1) {
display: flex;
justify-content: center;
img {
width: 60px;
height: 60px;
}
}
&:nth-child(2) {
text-align: center;
padding: 15px 15px;
color: #609bf0;
}
&:nth-child(3) {
display: flex;
justify-content: center;
align-items: center;
color: #1296db;
border: #1296db 1PX solid;
width: 50%;
margin: 0 auto;
padding: 5px 0;
font-size: 15px;
img {
width: 20px;
height: 20px;
margin-right: 8px;
}
}
}
}
.info {
background: #fff;
margin-bottom: 10px;
padding-bottom: 15px;
.swipe {
height: 300px;
background: #eee;
position: relative;
.jcc {
display: flex;
justify-content: center;
height: 300px;
}
img {
// width: 100%;
height: 100%;
}
.index {
position: absolute;
background: rgba(243, 244, 245, .8);
padding: 5px 15px;
bottom: 10px;
right: 10px;
border-radius: 50px;
}
}
}
.info1 {
background: #fff;
position: relative;
padding: 15px 9px 0;
height: 79px;
overflow: hidden;
p {
line-height: 22px;
text-indent: 2em;
letter-spacing: 1.2px;
}
span {
width: 75px;
text-align: right;
position: absolute;
bottom: 0;
right: 9px;
color: #39c;
background: #fff;
i {
color: #333;
}
}
}
.shopping {
background: #fff;
padding-top: 15px;
h4 {
display: flex;
align-items: center;
justify-content: center;
padding-bottom: 10px;
>img {
width: 30px;
height: 30px;
margin-right: 10px;
}
span {
color: #0f589e;
font-weight: normal;
}
}
img {
display: block;
width: 100%;
height: 2px;
}
}
.listUl {
// display: flex;
// flex-wrap: wrap;
padding: 0 15px;
top: 60px;
height: calc(100% - 100px) !important;
background: #fff;
overflow: hidden;
.itemLIST {
// float: left;
width: 50%;
display: inline-block;
padding-top: 15px;
padding-bottom: 15px;
&:nth-child(2n) {
padding-right: 5px;
}
&:nth-child(2n -1) {
padding-left: 5px;
}
img {
// width: 100%;
height: 100%;
/* prettier-ignore */
// border: 1PX solid #eee;
}
div {
&:first-child {
overflow: hidden;
height: 160px;
display: flex;
align-items: center;
justify-content: center;
}
&:last-child {
h3 {
font-weight: normal;
font-size: 16px;
margin-top: 5px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
p {
font-size: 14px;
margin-top: 5px;
display: flex;
align-items: center;
justify-content: space-between; // padding: 0 15px;
padding-right: 10px;
span {
display: block;
&:first-child {
color: #888;
}
&:last-child {
color: red;
font-size: 16px;
}
}
}
}
}
}
}
}
更多web前端知识,请查阅 HTML中文网 !!
下滑加载更多js_vue.js怎么实现滑动到底部加载更多数据效果?相关推荐
- js滑动到底部加载更多
版权声明:本文为博主原创文章,转载请附上原链接. https://blog.csdn.net/weixin_39927850/article/details/80502315 上面动图是实现的效果. ...
- ajax下拉 加载 下一页,jQuery滑动到底部加载下一页数据的实例代码
page_num =page_num+1 ; //页码自动增加,保证下次调用时为新的一页. $.ajax({ type: "get", url: rent_url, data: ' ...
- vue动态加载js和css以及部分页面加载特定的js和css
vue动态加载js和css以及部分页面加载特定的js和css vue项目第一次加载很慢的,发现在第一次加载要很大的js导致卡顿.可以使用cdn加速和其他gzip方式效果不是很明显.因此考虑每个页面动态 ...
- rsa加解密 --- jsencrypt.min.js --- 支持长字符串分段加解密
前端 + rsa加解密 + jsencrypt.min.js–(新增超长字符分段加解密) 分享2种,分段 和 不分段 加解密 --话不多说,直接上代码!~ 最终效果: 首先引入2个js <scr ...
- html 下拉滚动加载,原生js滚动到底部加载数据和下拉刷新 Scrollload
初衷 如今移动端站点越来越多,滚动到底部加载数据和下拉刷新的需求非常的常见,即使现在很多pc站点也会有这样的需求,比如百度首页就有.虽然简单的完成这么一个功能非常方便,但是滚动往往会成为性能的瓶颈,处 ...
- 原生js滚动到底部加载数据和下拉刷新 Scrollload
原文地址 https://github.com/fa-ge/Scrollload/blob/master/README.md 初衷 如今移动端站点越来越多,滚动到底部加载数据和下拉刷新的需求非常的常见 ...
- chrome浏览器加载css、js等静态资源文件的坑
2019独角兽企业重金招聘Python工程师标准>>> 注意一点:在开发过程发现chrome加载的静态资源文件不是最新,则手工清除缓存和cooike再次刷新就可以了.原因是chrom ...
- ci框架中引入css,php ci框架中加载css和js文件失败的原因和解决方法
php ci框架中加载css和js文件失败的原因和解决方法 发布时间:2021-07-01 12:08:38 来源:亿速云 阅读:50 作者:chen 本篇内容介绍了"php ci框架中加载 ...
- JS框架设计之加载器所在路径的探知一模块加载系统
1.要加载一个模块,我们需要一个URL作为加载地址,一个script作为加载媒介,但用户在require是都用ID,我们需要一个将ID转换为URL的方法,思路很简单,强加个约定,URL的合成规则是为: ...
最新文章
- 使用OpenSSL为支付宝生成RSA私钥
- C# 将外部exe程序 嵌入到自己的窗体界面
- Yii2框架之旅(六)
- Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口
- 《MySQL技术内幕(SQL编程)》——基础
- LeetCode题解之Single Number
- WordPress搬家教程:换空间与换域名
- 针对EasyUI的checkbox进行扩展
- 物流管理源代码java_基于jsp的物流管理-JavaEE实现物流管理 - java项目源码
- 变频器RS485通讯协议
- 使用apt更新和升级系统软件
- 马歇尔·卢森堡《非暴力沟通》——备忘
- 共享的计算机用户账户限制,连接共享文件夹,提示“登录失败:禁用当前的账户”...
- 华为社招面试(拿到offer)
- 如何在本地运行jsp文件
- 离阿里最近的机会,来了
- java-commen判断一个数据是否存在于列表中
- AR路由器web界面每IP限速配置方法
- Linux第八课samba服务器搭载
- 智慧城市密码应用解决方案