vue2滚动条加载更多数据实现代码

网友投稿 273 2023-06-19


vue2滚动条加载更多数据实现代码

解析:

判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop、clientHeight、scrollHeight。

scrollTop为滚动条在Y轴上的滚动距离。

clientHeight为内容可视区域的高度。

scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。

从这个三个属性的介绍就可以看出来,滚动条到底部的条件即为scrollTop + clientHeight == scrollHeight。(兼容不同的浏览器)。

代码:

1.vue的实现

html:

{{item.create_time}}

[{{item.level_value}}]

{{item.description}}

{{item.status_value}}

js:

created () {

var self = this

$(window).scroll(function () {

let scrollTop = $(this).scrollTop()

let scrollHeight = $(document).height()

let windowHeight = $(this).height()

if (scrollTop + windowHeight === scrollHeight) {

self.questionListData.push({

'id': '62564AED8A4FA7CCDBFBD0F9A11C97A8',

'type': '0102',

'type_value': '数据问题',

'description': '撒的划分空间撒电话费看见爱上对方见客户速度快解放哈萨克接电话发生的划分空间是的哈副科级哈师大空间划分可接受的后方可抠脚大汉房间卡收到货放假多少',

'status': '0',

'status_value': '未解决',

'level': '0203',

'level_value': '高',

'content': '过好几个号',

'userid': 'lxzx_hdsx',

'create_time': 1480296174000,

'images': nullIXRsJUluX

})

self.questionListData.push({

'id': 'D679611152737E675984D7681BC94F16',

'type': '0101',

'type_value': '需求问题',

'description': 'a阿斯顿发生丰盛的范德萨范德萨发十多个非官方阿道夫葛根粉v跟下载v',

'status': '0',

'status_value': '未解决',

'level': '0203',

'level_value': '高',

'content': '秩序性支出V型从v',

'userid': 'lxzx_hdsx',

'create_time': 1480296155000,

'images': null

})

self.questionListData.push({

'id': 'B5C61D990F962570C34B8EE607CA1384',

'type': '0104',

'type_value': '页面问题',

'description': '回复的文本框和字体有点丑',

'status': '0',

'status_value': '未解决',

'level': '0203',

'level_value': '高',

'content': '回复的文本框和字体有点丑',

'userid': 'lxzx_hdsx',

'create_time': 1480064620000,

'images': null

})

self.questionListData.push({

'id': '279F9571CB8DC36F1DEA5C8773F1793C',

'type': '0103',

'type_value': '设计问题',

'description': '设计bug,不应该这样设计。',

'status': '0',

'status_value': '未解决',

'level': '0204',

'level_value': '非常高',

'content': '设计bug,不应该这样设计。你看。',

'userid': 'lxzx_hdsx',

'create_time': 1480064114000,

'images': null

})

self.questionListData.push({

'id': '80E365710CB9157DB24F08C8D2039473',

'type': '0102',

'type_value': '数据问题',

'description': '数据列表滚动条问题',

'status': '0',

'status_value': '未解决',

'level': '0202',

'level_value': '中',

'content': '数据列表在数据条数比较多的情况下无滚动条',

'userid': 'lxzx_hdsx',

'create_time': 1480034606000,

'images': null

})

console.log(self.questionListData)

}

})

},

因为vue2 实现了m-v双向绑定,所以这里直接改变for循环数据源即可实现列表的数据刷新;

2: 普通js的实现

html:

  

    

   

测试2

测试3

测试4

测试5

测试6

测试7

测试8

测试9

测试10

测试11

    

  

js:

var html = '' //距下边界长度/单位px

$(window).scroll(function () {

var scrollTop = $(this).scrollTop();

var scrollHeight = $(document).height();

var windowHeight = $(this).height();

if (scrollTop + windowHeight == scrollHeight) {

for(let i=0;i<10;i++){

html += '

}

$('#content ul').append(html);

}

});


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue数据驱动模拟实现2
下一篇:移动端界面的适配
相关文章

 发表评论

暂时没有评论,来抢沙发吧~