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 相关文章推荐
JS脚本defer的作用示例介绍
Jan 02 Javascript
Jquery中扩展方法extend使用技巧
Aug 24 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
Feb 09 Javascript
详解JS: reduce方法实现 webpack多文件入口
Feb 14 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
Aug 14 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
详解vue添加删除元素的方法
Jun 30 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 Javascript
element的el-table中记录滚动条位置的示例代码
Nov 06 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
May 26 Javascript
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
JS class语法糖的深入剖析
Jul 07 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执行速度全攻略
2006/10/09 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
jQuery 表格工具集
2010/04/25 Javascript
JavaScript 事件系统
2010/07/22 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python采集微信公众号文章
2018/12/20 Python
python获取服务器响应cookie的实例
2018/12/28 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
python如何将两个txt文件内容合并
2019/10/18 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
服装行业创业计划书范文
2014/02/05 职场文书
党员教师工作决心书
2014/03/13 职场文书
2014年保密工作总结
2014/11/22 职场文书
内勤岗位职责
2015/02/10 职场文书
宾馆安全管理制度
2015/08/06 职场文书
公司转让协议书
2016/03/19 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python