当前位置:首页 » 网页前端 » 前端vue滚动条
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

前端vue滚动条

发布时间: 2023-03-23 12:26:24

① vue滚动条消失

这个情况的出现方式很多,我个人写这个是因为刷新页面后,本来有的滚动条消失了。这个滚动条是我内置设置好页面高度的,正常第咐陪册一次加载是这样衡宏的

超过高度overflow:auto,按道理说应该会有滚动条,可实际情况却没有显示。

这个原因是因为:页面跳转后,body被加上了一个style="overflow: hidden;这是一个bug!!!

解决办法:

第一种:为body设置属性overflow: auto !important;

第二乱稿种:用路由设置属性

router.afterEach((to, from, next) => { document.querySelector("body").setAttribute("style", "overflow: auto !important;")});

② vue 滚动条选中元素自动滚动到可视区域里居中显示

模拟vant的Tab标签页的标签滚动效果贺搭
效果:选中元素谈盯,在滚动条的可视区域里面自动居中,头尾两端不用居中
vant效果: https://youzan.github.io/vant/#/zh-CN/tab

如果这篇文章对你有用,请给我点个赞,让我更加含拍和有动力写下去,谢谢

③ vue的滚动条插件vue-scroll

最近在开发Vue项目时,需要实现宴缺世一个页面的局部滚动条功能。以前实现此类功能都是使用的iframe原生的滚动条功能,保证内容只在div块内滚动,别的地方不影响。
据尝试,发现Iview等组件库都没有符合这种情况的组件,于是查找了其他组件,最终选用晌肢了vue-scroll插件。

vuescroll 是一个基于 vue.js 2.X 虚拟滚动条, 它支持定制滚扮携动条的样式,检测内容尺寸变化、能够使内容分页、支持上拉-刷新,下推加载等诸多特性。

(1)拥有原生滚动条的滚动行为
(2)可以定制滚动条的样式(包括颜色、尺寸、位置、透明度、是否保持显示等)
(3)在模式之间自由切换
(4)能够通过设置滚动动画来平滑地滚动
(5)拉取刷新和推动加载
(6)支持分页模式(每次滑动整个页面)
(7)支持快照模式(每次滑动滚动一个用户定义的距离)
(8)可以检测内容尺寸发生变化

在components中再注册一下

这两种引入方式都可以,引入后用vuescroll包裹需要滚动的部分

在data中写明需要修改的配置项

④ vue图片水平滚动,滚动条高亮滚动位置

Vue图片水平滚动滚动条高亮滚动位置可以使用Vue的v-scroll指令来实现。v-scroll指令可以接受一个参数,用于指定滚动条的高亮位置。例如:<div v-scroll:index="index">,其中index参数用于指定滚动条高亮位置,可以是一个数字或胡唤者一个字符串。Vue图片水平滚动滚动条高亮滚动位置可以使用Vue的v-scroll指令来实现。v-scroll指令可以接受一个参数,用于指定滚动条的高亮位置。例如:<div v-scroll:index="index">,其中index参数用于指定滚动条高亮位置,可以是一春做毕个数字或者扒芹一个字符串。

⑤ Vuescroll - 一个基于Vue的虚拟滚动条

推荐一个基于Vue的滚动条-Vuescroll

GitHub地址: vuescroll

以前接触过一个后端管理系统, 叫碰亩贺H+, 偶尔发现它用的是左侧菜单没有滚动条, 于是, 我仔细查看dom, 发现H+ 左耐正侧菜单的旁边有一个小的DIV, 我拖动的, 菜单竟然也能滚动, 我明白了, 这是用的虚拟滚动条, 我感觉这个挺不错的, 后来查看这个虚拟滚动条的源码, 发现是一个款叫做SlimScroll的基于jquery的库。由于我对Vue比较熟悉,所以,我想用Vue做一个类似的。

一开始用slimScroll的方法并不理想, slimscroll的滚动内容的方法是:

这有个2致命的缺点:

这两点带来了极差的UI体验!

后来, 我无意中发现了element-ui也是使用了虚拟滚笑派动条, 并且效果很好, 尤其是在手机端滑动, 每次滑动结束手离开屏幕都能继续滑行一段距离, 比slimscroll效果要好,于是我就去element-ui的github上翻scrollbar的源码, 通过阅读源码, 我发现element-ui触发滚动的时机是在onscroll的时候, 也就是说, 把滚动内容的父元素设置为 overflow:scroll , 然后监听父元素的onScroll事件, 在onScroll事件的callback里面移动滚动内容即可。 经过我的一番改进, 终于能做到和element-ui滚动条滚动的一个效果了。

后来,我又接触到了几个不错的, 并把它们的特点加进来了。 如element-resize-detector, scroller, smooth-scroll, bertter-scroll等等。 现在的Vuescroll已经升级为一个功能强大的滚动条了。

它的基本特点有:

总的来说,Vuescroll不仅仅只一个滚动条, 你可以用它制作一个轮播图、时间选择器、能够自动侦测内容发生变化的一个插件等等。

部分参考资料