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怎么实现滑动到底部加载更多数据效果?相关推荐

  1. js滑动到底部加载更多

    版权声明:本文为博主原创文章,转载请附上原链接. https://blog.csdn.net/weixin_39927850/article/details/80502315 上面动图是实现的效果. ...

  2. ajax下拉 加载 下一页,jQuery滑动到底部加载下一页数据的实例代码

    page_num =page_num+1 ; //页码自动增加,保证下次调用时为新的一页. $.ajax({ type: "get", url: rent_url, data: ' ...

  3. vue动态加载js和css以及部分页面加载特定的js和css

    vue动态加载js和css以及部分页面加载特定的js和css vue项目第一次加载很慢的,发现在第一次加载要很大的js导致卡顿.可以使用cdn加速和其他gzip方式效果不是很明显.因此考虑每个页面动态 ...

  4. rsa加解密 --- jsencrypt.min.js --- 支持长字符串分段加解密

    前端 + rsa加解密 + jsencrypt.min.js–(新增超长字符分段加解密) 分享2种,分段 和 不分段 加解密 --话不多说,直接上代码!~ 最终效果: 首先引入2个js <scr ...

  5. html 下拉滚动加载,原生js滚动到底部加载数据和下拉刷新 Scrollload

    初衷 如今移动端站点越来越多,滚动到底部加载数据和下拉刷新的需求非常的常见,即使现在很多pc站点也会有这样的需求,比如百度首页就有.虽然简单的完成这么一个功能非常方便,但是滚动往往会成为性能的瓶颈,处 ...

  6. 原生js滚动到底部加载数据和下拉刷新 Scrollload

    原文地址 https://github.com/fa-ge/Scrollload/blob/master/README.md 初衷 如今移动端站点越来越多,滚动到底部加载数据和下拉刷新的需求非常的常见 ...

  7. chrome浏览器加载css、js等静态资源文件的坑

    2019独角兽企业重金招聘Python工程师标准>>> 注意一点:在开发过程发现chrome加载的静态资源文件不是最新,则手工清除缓存和cooike再次刷新就可以了.原因是chrom ...

  8. ci框架中引入css,php ci框架中加载css和js文件失败的原因和解决方法

    php ci框架中加载css和js文件失败的原因和解决方法 发布时间:2021-07-01 12:08:38 来源:亿速云 阅读:50 作者:chen 本篇内容介绍了"php ci框架中加载 ...

  9. JS框架设计之加载器所在路径的探知一模块加载系统

    1.要加载一个模块,我们需要一个URL作为加载地址,一个script作为加载媒介,但用户在require是都用ID,我们需要一个将ID转换为URL的方法,思路很简单,强加个约定,URL的合成规则是为: ...

最新文章

  1. 使用OpenSSL为支付宝生成RSA私钥
  2. C# 将外部exe程序 嵌入到自己的窗体界面
  3. Yii2框架之旅(六)
  4. Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口
  5. 《MySQL技术内幕(SQL编程)》——基础
  6. LeetCode题解之Single Number
  7. WordPress搬家教程:换空间与换域名
  8. 针对EasyUI的checkbox进行扩展
  9. 物流管理源代码java_基于jsp的物流管理-JavaEE实现物流管理 - java项目源码
  10. 变频器RS485通讯协议
  11. 使用apt更新和升级系统软件
  12. 马歇尔·卢森堡《非暴力沟通》——备忘
  13. 共享的计算机用户账户限制,连接共享文件夹,提示“登录失败:禁用当前的账户”...
  14. 华为社招面试(拿到offer)
  15. 如何在本地运行jsp文件
  16. 离阿里最近的机会,来了
  17. java-commen判断一个数据是否存在于列表中
  18. AR路由器web界面每IP限速配置方法
  19. Linux第八课samba服务器搭载
  20. 智慧城市密码应用解决方案

热门文章

  1. 实践丨SpringBoot整合Mybatis-Plus项目存在Mapper时报错
  2. 快速了解前端开发HTML的正确姿势
  3. 云图说 | GPU共享型AI容器,让AI开发更普及
  4. 【华为云技术分享】初识MySQL隔离级别
  5. HDC.Cloud | 解秘一杯茶的物联之旅
  6. .Net Core下使用MQTT协议直连IoT平台
  7. 【Python3网络爬虫开发实战】 1.7.1-Charles的安装
  8. 北京科技大学计算机作业,北京科技大学计算机题
  9. 计算机显示技术发展,显示技术
  10. Mac系统下安装MySQL详细步骤