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 Array对象入门分析
Oct 30 Javascript
一些常用的JS功能函数代码
Jun 23 Javascript
jQuery学习笔记之jQuery的DOM操作
Dec 22 Javascript
关于js datetime的那点事
Nov 15 Javascript
jQuery中val()方法用法实例
Dec 25 Javascript
JQuery显示隐藏DIV的方法及代码实例
Apr 16 Javascript
jQuery获取当前点击的对象元素(实现代码)
May 19 Javascript
jQuery实现6位数字密码输入框
Dec 29 Javascript
AngularJS表单验证功能分析
May 26 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 Javascript
JavaScript实现随机点名器
Mar 25 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 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+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python中with及contextlib的用法详解
2017/06/08 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
python 使用shutil复制图片的例子
2019/12/13 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
python中upper是做什么用的
2020/07/20 Python
python实现粒子群算法
2020/10/15 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
大二学生自我检讨书
2014/10/23 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
python munch库的使用解析
2021/05/25 Python
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL