解析:
判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop、clientHeight、scrollHeight。
scrollTop为滚动条在Y轴上的滚动距离。
clientHeight为内容可视区域的高度。
scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。
从这个三个属性的介绍就可以看出来,滚动条到底部的条件即为scrollTop + clientHeight == scrollHeight。(兼容不同的浏览器)。
代码:
1.vue的实现
html:
<div class="questionList-content-list">
<ul>
<li v-for="item in questionListData" @click="goDetail(item.id)">
{{item.create_time}}
[{{item.level_value}}]
{{item.description}}
{{item.status_value}}
</li>
</ul>
</div>
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': null
})
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:
<div id="content" style="height:960px" class="questionList-content-list">
<ul>
<li class="list">
<span测试1</span>
<span>测试2</span>
<span>测试3</span>
<span>测试4</span>
<span>测试5</span>
<span>测试6</span>
<span>测试7</span>
<span>测试8</span>
<span>测试9</span>
<span>测试10</span>
<span>测试11</span>
</li>
</ul>
</div>
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 += '<li>Page: ' + i + ', Data Index: ' + i + ' </li>'
}
$('#content ul').append(html);
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。