vue 中滚动条始终定位在底部的方法


Posted in Javascript onSeptember 03, 2018

滚动条定位在底部,首先想到的是,动态修改滚动条到顶部的距离等于div的高度,

代码实现:

var div = document.getElementById('data-list-content')
div.scrollTop = div.scrollHeight

但是问题来了,滚动条并没有到达底部,而是距离底部还有一点距离(一脸懵逼)

估计是动态加载数据时,数据还未加载,滚动条就已经执行,知道原因了,那就实践呗。

第二次尝试,利用vue的watch监控数据的改变,然后动态修改滚动条到顶部的距离

代码实现:

watch: {
 
  'processData': 'scrollToBottom'
 
}
 
scrollToBottom: function () {
 
  var div = document.getElementById('data-list-content')
 
  div.scrollTop = div.scrollHeight
 
}

再次崩溃了,好像没有毛用(陷入苦思)。

这个时候我想到了$nextTick 。

简单的介绍下$nextTick:

Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新。

$nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后使用 。

既然$nextTick是在下次DOM更新时执行的,不正好符合我们的要求嘛(小激动)。

代码实现:

watch: {
 
  'processData': 'scrollToBottom'
 
}
 
scrollToBottom: function () {
 
  this.$nextTick(() => {
 
    var div = document.getElementById('data-list-content')
 
    div.scrollTop = div.scrollHeight
 
  })
 
}

运行代码,成功了。

以上这篇vue 中滚动条始终定位在底部的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
Feb 03 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 Javascript
JS实现匀加速与匀减速运动的方法示例
Sep 04 Javascript
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
JS如何获取地址栏的参数实例讲解
Oct 06 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
JS实现手风琴特效
Nov 08 Javascript
javascript代码实现简易计算器
Jan 25 Javascript
前后端如何实现登录token拦截校验详解
Sep 03 #Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 #Javascript
vue 纯js监听滚动条到底部的实例讲解
Sep 03 #Javascript
解决vue.js this.$router.push无效的问题
Sep 03 #Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
Sep 03 #Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 #Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 #jQuery
You might like
php时区转换转换函数
2014/01/07 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
Python实现快速多线程ping的方法
2015/07/15 Python
python代码实现ID3决策树算法
2017/12/20 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
python实现连连看游戏
2020/02/14 Python
python微信公众号开发简单流程实现
2020/03/09 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
数控专业个人求职信范例
2013/11/29 职场文书
远程研修随笔感言
2014/02/10 职场文书
关于安全演讲稿
2014/05/09 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
婚宴来宾致辞
2015/07/28 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
Jsonp劫持学习
2021/04/01 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
基于JavaScript实现省市联动效果
2021/06/22 Javascript
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle