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 相关文章推荐
让innerHTML的脚本也可以运行起来
Jul 01 Javascript
angularjs中ng-attr的用法详解
Dec 31 Javascript
jQuery实现二维码扫描功能
Jan 09 Javascript
详解VUE2.X过滤器的使用方法
Jan 11 Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 Javascript
vue使用中的内存泄漏【推荐】
Jul 10 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
Vue开发中遇到的跨域问题及解决方法
Feb 11 Javascript
微信小程序 bindtap 传参的实例代码
Feb 21 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 Javascript
vue-router 按需加载 component: () => import() 报错的解决
Sep 22 Javascript
小程序实现列表倒计时功能
Jan 29 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/11/25 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
使用正则替换变量
2007/05/05 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
python中实现k-means聚类算法详解
2017/11/11 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
中专自荐信
2013/10/13 职场文书
大学生毕业自我鉴定范文
2013/11/03 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
PHP实现两种排课方式
2021/06/26 PHP
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python