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 相关文章推荐
二行代码解决全部网页木马
Mar 28 Javascript
jQuery功能函数详解
Feb 01 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
Dec 04 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 Javascript
jQuery实现简单弹窗遮罩效果
Feb 27 Javascript
微信小程序中post方法与get方法的封装
Sep 26 Javascript
JS控制鼠标拒绝点击某一按钮的实例
Dec 29 Javascript
AjaxUpLoad.js实现文件上传
Mar 05 Javascript
详解使用Next.js构建服务端渲染应用
Jul 10 Javascript
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 Javascript
新手快速入门JavaScript装饰者模式与AOP
Jun 24 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
前后端如何实现登录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模板页面中分页代码的解析
2009/02/06 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
Yii2单元测试用法示例
2016/11/12 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
网上抓的一个特效
2007/05/11 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
Python实现多线程抓取妹子图
2015/08/08 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
大专自我鉴定范文
2013/10/23 职场文书
人事专员的职责
2014/02/26 职场文书
个人函授自我鉴定
2014/03/25 职场文书
禁烟标语大全
2014/06/11 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python