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 相关文章推荐
Javascript客户端将指定区域导出到Word、Excel的代码
Oct 22 Javascript
JavaScript之引用类型介绍
Aug 10 Javascript
js实现拉伸拖动iframe的具体代码
Aug 03 Javascript
在百度知道团队中快速审批新成员的js脚本
Feb 02 Javascript
jquery删除ID为sNews的tr元素的内容
Apr 10 Javascript
json对象与数组以及转换成js对象的简单实现方法
Jun 24 Javascript
bootstrap 通过加减按钮实现输入框组功能
Nov 15 Javascript
Angular数据绑定机制原理
Apr 17 Javascript
vue之将echart封装为组件
Jun 02 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
Apr 22 Javascript
三剑客:offset、client和scroll还傻傻分不清?
Dec 04 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加密解密的代码
2007/07/16 PHP
PHP Google的translate API代码
2008/12/10 PHP
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python3.6数独问题的解决
2019/01/21 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
大学生求职信范文
2014/05/24 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
雷锋之歌观后感
2015/06/10 职场文书
学校团代会开幕词
2016/03/04 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
Django程序的优化技巧
2021/04/29 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
MySQL自定义函数及触发器
2022/08/05 MySQL