需求内容

大屏项目:指定dom元素内,如果子元素内容过多,超出父元素的最高高度,可以发生自动滚动;如果子元素内容没有超出父元素的最高高度,不可以发生自动滚动。

疑惑点:
.

实现方案

获取数据后并渲染到dom后,查看最后一个子元素是否在父元素的可视范围内(通过最后一个子元素offsetTop和父元素的clientHeight比较),如果在就禁止vue-seamless-scroll复制数据和自动滚动行为,反之则允许。

vueSeamless 没有在官方文档里提到autoPlay属性,虽然它可以禁止自动滚动的行为。

代码逻辑

<vueSeamless :data="copyData" ref="vueSeamlessRef" class="scroll-list-seamless" :class-option="vueSeamlessOptions"><ul class="data-list"><li v-for="item in dataList" :key="item.count"><p v-text="item.name"></p><p v-text="item.count"></p></li></ul></vueSeamless><script>
data () {return {dataList: [],copyData: [],vueSeamlessOptions: null}
}
methods: {this.dataList = xxxx// 获取数据后,等待实际渲染dom后判断是否滚动this.$nextTick(() => {const scrollListDom = document.querySelector('.scroll-list-seamless')if (scrollListDom) {const scrollListDomLast = scrollListDom.querySelectorAll('li')[scrollListDom.querySelectorAll('li').length - 1]this.vueSeamlessOptions= {limitMoveNum: 20,step: .5,// autoPlay为false则不自动滚动,反之则开发自动滚动autoPlay: scrollListDomLast .offsetTop > scrollListDom .clientHeight}if (this.vueSeamlessOptions.autoPlay) {//vueSeamless 组件的data属性如果有值,则会自动复制一分并渲染//所以如果需要自动滚动,才需要赋值;反之则不需要this.copyData= this.dataList// 手动调用组件内方法,开始自动滚动this.$refs.vueSeamlessRef._startMove()}}})
}
</script><style>
.scroll-list-seamless {height: 400px;overflow: hidden;
}
</style>

vue-seamless-scroll数据量少时,暂停滚动,继续滚动相关推荐

  1. vue+cesium cesium数据量太大导致浏览器卡顿解决办法

    vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法 解决方案 : 不要把任何的cesium对象 放在data中监听,因为在data中的变量 , vue会劫持数据 , 导致迟缓. 解 ...

  2. vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法

    如题 博主在开发过程中遇到了问题就是 当数据量过大时 浏览器特别卡 情景: 每秒实时渲染数据 效果:当前数据没有渲染完就开始渲染下一秒的数据了 如何将巨大的数据 在一秒内快速渲染到页面上呢? 解决方案 ...

  3. vue后台获取数据量确定渲染轮播图的页量

    轮播图每页展示6条数据,数据量不确定.轮播图页数要随着数据量的大小来确定 贴代码: <el-carousel trigger="click" :autoplay='false ...

  4. vue el-select数据量太大,导致浏览器崩溃解决办法

    下拉数据量太大,浏览器单线程渲染时间较长,会导致浏览器崩溃.为了解决这一问题,可以采用懒加载形式,完美解决 <el-col :span="24"><el-form ...

  5. elasticsearch scroll 一页最大数据量_elasticsearch 百亿级数据检索案例与原理

    一.前言 数据平台已迭代三个版本,从头开始遇到很多常见的难题,终于有片段时间整理一些已完善的文档,在此分享以供所需朋友的 实现参考,少走些弯路,在此篇幅中偏重于ES的优化,关于HBase,Hadoop ...

  6. vue渲染大量数据如何优化_大数据量场景下的Vue性能优化

    性能优化最常见的落脚点是在网络和dom上,但是在大数据量的场景下,由于Vue本身的特性,可能会造成js运行层面的性能问题,这篇文章讨论的就是针对这一部分的性能优化方案. 模拟一个大数据量的场景 // ...

  7. vue 页面卡顿(数据量大)

    碰到个离谱的功能 要循环好多遍 然后在赋值 本来数据量就大 然后还循环 就造成了页面特别卡顿 分页或删除功能 点一下 要好几秒才反应过来 差一点的电脑 浏览器直接崩溃 so 我Google了好多方法 ...

  8. 一行代码解决vue数据量大卡顿问题

    最近遇到一个需求,需要在地图上显示某地区的路网线路,结果后端直接返回了3w多条数据 每条线路下坐标点接近100个 这四舍五入就是300w的数据啊. 而且还不能分层级显示,只能一次性显示全部打点,没办法 ...

  9. Vue渲染数据量过大,页面渲染卡

    方案: 减少数据,减少demo节点,虚拟列表 我在处理的使用使用了两个方案,一个是减少demo节点(组件化)拆分:虚拟列表 我在进行排查问题的时候发现问题的所在是因为页面html有1800多行而且数据 ...

最新文章

  1. mysql锁表_MYSQL锁表问题的解决方法
  2. Innosetup(pascal)标签控件label换行
  3. Windows平台下安装PhoenixSuit要点
  4. update se_Java SE 7 Update 25 –发行说明进行了解释。
  5. Mac端解决(含修改8.0.13版的密码):Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)...
  6. Linux学习笔记-消息队列的接收
  7. 【BZOJ1058】[ZJOI2007]报表统计 STL
  8. 判断位数(Java)
  9. 为什么说图形数据库是大数据时代的利器?
  10. 拓端tecdat|用R语言中的神经网络预测时间序列:多层感知器和极限学习机
  11. 超详细Redis使用手册
  12. PIL IOError: cannot identify image file './temp.jpg'
  13. xp的服务器系统怎么安装系统,如何使用u盘安装xp系统,教您如何安装
  14. 压缩包修改所属目录Linux,linux文件/目录/压缩解压 操作指令
  15. 【OpenGL】FBO渲染到纹理案例
  16. s=s+1和s+=1的区别
  17. Android定制个性化字体
  18. Win10 WLS 安装docker指南
  19. 多层json转xml
  20. 德国慕尼黑工业大学计算机学院,德国哪些大学有英文授课?慕尼黑工业大学有吗?...

热门文章

  1. antd form 表单数据校验·记
  2. python 图片合成视频
  3. 旅游类App的原型制作分享
  4. 和USB网络线有关的资料和我遇到的一些问题及解决
  5. Scrapy 规则化爬虫(1)——CrawlSpider及link_extractor
  6. phpstorm安装jquery插件库
  7. 知识共享有多难?做好这几点,问题统统解决
  8. 线性回归分析——高尔顿数据集
  9. haar adaboost matlab,人脸检测算法之Haar-Adaboost分类器原理
  10. python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...