摘要:让用户可以滚动页面。事件中拿到想要的后浏览器已经隐藏地址栏和工具栏,放开插件滚动。发现派发的方法在父组件中监听后获取位置参数的效果不太好必须要手指贴着滑动才可以这个设置为可以实时派发滚动事件和位置参数其他坑点待发现欢迎大佬一起交流
写在前面
由于最近一个移动端项目中许多地方有滚动需求, 横向,纵向的都有,所以就基于better-scroll封装了一个通用的滚动组件,期间也踩了一些坑,有时候会滚动失效,初始化的时候就不能滚动等等...
better-scroll地址: https://ustbhuangyi.github.io...
当然, 我们还可以添加更多的配置功能, 这个需要依据你自己的需求来了,详情配置去better-scroll官网看看
使用scroll组件 纵向滚动// 下面是样式 .main { width: 100%; height: calc(100vh - 52px); background-color: #f7f8fa; .main-content { height: 100%; overflow: hidden; position: relative; } } 添加需要滚动的DOM元素: 如ul>li等, 或者多个子组件
纵向滚动主要是要注意的是: scroll下的第一个子元素,它的高度需要让内容来撑开!!! 否则无法滚动
图片中已经标识出来了...
// 样式
横向滚动下我们传入配置值就行了; 这里主要是注意样式的书写! 也就是scroll下的第一个子元素的宽度要由内容撑宽才可以...,代码块中也标注出来了.
踩过的坑点1.纯静态页面的滚动
举个栗子,我现在写了一个弹出层,就是静态数据渲染,但是需求也需要滚动,因为单页可能显示不下, 虽说better-scroll的原理是第一个子元素超出父盒子就可以实现滚动了, 弹出层只有在点击弹窗的时候才会渲染,所以是无法滚动的, 在弹窗出来后再手动刷新scroll组件; 这里我们就可以通过那个data属性搞事情了,每次点击弹窗后,往data中丢个数据,这样会触发scroll组件的watch, 然后手动刷新,就可以实现滚动了...
// 部分代码示例// 侧边栏弹出层组件 methods: { showPopup() { this.onOff.push("1"), // 刷新scroll组件 this.$refs.aside.show(); } }
2.scroll容器数据变化导致无法正常滚动, 可能情况是:
- 初始化的时候就有问题,去检查一下第一个子元素高度||宽度是否是由其子元素撑开的 - 接口数据还未请求回来就初始化了, 比如图片,此时初始化就没算上图片的高度, 这时候就需要手动调用this.$refs.scroll.refresh()来刷新scroll组件, 矫正滚动高度 - 页面容器设为100vh后发现, 无法触发上滑隐藏URL框的需求; 消除手机URL栏: 需要满足列表的高度需要设置固定,外层盒子要大于手机视口高度,滑动时才能消除url地址栏 解决:监听页面路由事件beforeRouteEnter,先禁止掉scroll插件的滚动。 让用户可以滚动页面。 window.onscroll事件中拿到想要的scrollTop后(浏览器已经隐藏地址栏和工具栏),放开scroll插件滚动。 - 发现better-scroll派发的scroll方法, 在父组件中监听后获取位置参数的效果不太好; 必须要手指贴着滑动才可以... 这个设置 probeType 为 3 可以实时派发滚动事件和位置参数
3.其他坑点待发现...欢迎大佬一起交流
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/104749.html
摘要:从之前黄轶老师的高仿外卖开始接触过这个滚动库,感觉体验感很好,用起来也比较顺手,所以在后来的项目联系中就一直在使用。 前言 虽然在此之前已经有类似的仿豆瓣电影的webapp,但或是开发的有些简洁功能不太完善,或是体验感觉得可以再完善下,所以自己摸索着对比豆瓣和豆瓣电影两款app做了一下,初步满足了自己的想法,经过几次完善基本不会出现bug,如果发现存在问题请告诉我修改,谢谢! 2017...
摘要:去年年底自己搭了一个在移动端的开发框架,感觉体验不是很好。路由懒加载首页终于写完了,以上这些就是我在移动端体验优化的实战。去年年底自己搭了一个vue在移动端的开发框架,感觉体验不是很好。上个星期又要做移动端的项目了。所以我花了两天时间对之前的那个开发框架做了以下优化 自定义vuex-plugins-loading 路由切换动画 + keep alive 动态管理缓存组件 better-sc...
摘要:概述项目是基于,成品是一个移动端的音乐播放器,来源于的实战课程。播放器是全局组件,放在下面,通过传递数据,触发提交,从而使播放器开始工作。将请求的数据格式化后再通过传递,组件间共享,实现歌曲的播放切换等。 概述 项目是基于Vue.js,成品是一个移动端的音乐播放器,来源于imooc的实战课程。自己动手实践并加以修改拓展。项目的大致流程是Vue-cli构建开发环境,分析需求,设计构思,规...
摘要:的组件化功能可谓是它的一大亮点,通过将页面上某一组件的代码放入一个的文件中进行管理可以大大提高代码的维护性。项目中未做移动端适配,在不同屏幕手机上打开,可能用户体验会差些 一、项目展示: showImg(https://user-gold-cdn.xitu.io/2018/5/18/1637183ad14a696a?w=372&h=791&f=gif&s=2408442); 注意:如果...
阅读 2570·2021-09-26 10:13
阅读 5968·2021-09-08 10:46
阅读 685·2019-08-30 15:53
阅读 2956·2019-08-29 16:13
阅读 2749·2019-08-26 12:23
阅读 3477·2019-08-26 11:24
阅读 1084·2019-08-23 18:09
阅读 1028·2019-08-23 17:08