Vue的el-scrollbar实现自定义滚动


Posted in Python onMay 29, 2018

为什么要用el-scrollbar?

最近在写一个内部平台系统,相信大家都知道,其中会有很多自定义的滚动区域,就比如说现在有一个列表需要滚动,第一个念头就是用 overflow: scroll; 啊!嗯嗯,又不是不能用!如果我不曾见过太阳,我本可以忍受黑暗。

大家总会见过不少滚动条比较优雅的实现,不可否认,美是让人愉悦的。所以这些年行走江湖我满怀愧疚,让大家见丑了。

为什么要用el-scrollbar,大家都知道,模拟一个滚动不难,而且市面上有很多这样的库。我考虑的,首先项目用的框架是Vue,然后用的组件库是Element,Element官网也有很多滚动,而且像是Select组件的下拉框也是有滚动的,所以就不用想选择什么了,简简单单的就用Element自己的scrollbar吧,也不用再引入什么别的包或者文件之类的。

看Element的官网是不可能发现Scrollbar这个组件的,没有使用文档,但是可以直接使用。

为什么要写这一篇文章?

第一,有段时间没写东西了,先热热手;

第二,真的有同学不知道怎么用,可能主要是没有文档吧

Vue的el-scrollbar实现自定义滚动

先来看看它的样子。

Vue的el-scrollbar实现自定义滚动

看了效果,接着来看一下怎么找到这个组件,官方没有提供文档,但确实是直接可用的一个组件。为什么这么说,这个一会再聊。先稍微看一下Element项目一些基本的概念。

在Element的贡献指南里说了开发环境搭建和打包代码的指令。打包代码用 npm run dist ,我们去package.json中可以看到这个指令具体的操作。

Vue的el-scrollbar实现自定义滚动

我们简单看一下build/webpack.conf.js这个文件,会发现打包的文件入口是./src/index.js,我们再去看一下这个文件。里面内容除了包含给vue安装插件,原型上挂载对象之类的操作外,就是用插件的方式把Element组件给注册完成,当然也暴露出用安装包方式安装后要用的所有方法和属性。其实我们已经看到了Scrollbar的身影。再循着去看一下packages/scrollbar/index.js'这个文件,简单的把这个组件引入后,添加了一个install方法,提供给Vue的use方法使用,然后就直接export出来了。

Vue的el-scrollbar实现自定义滚动

去src/main.js这个文件,看一下组件接收的props:

Vue的el-scrollbar实现自定义滚动

native属性:如果为true就不显示el的bar,也就是el模拟出来的滚动条,如果为false就显示模拟的滚动条

关于tag这个属性,可以看一下el的Select组件中的应用。

Vue的el-scrollbar实现自定义滚动

画个图表示一下view和wrap这两个区域的区别:

Vue的el-scrollbar实现自定义滚动

尝试用一下

考虑到有些同学有时会打不开上面的链接,把代码贴出来。

HTML

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.3.9/lib/index.js"></script>
<div id="app">
 <h2>list:</h2>
 <el-scrollbar wrap-class="list" wrap-style="color: red;" view-style="font-weight: bold;" view-class="view-box" :native="false">
 <div v-for="value in num" :key="vlaue">
  {{value}}
 </div>
 </el-scrollbar>
</div>


CSS

@import url("//unpkg.com/element-ui@2.3.9/lib/theme-chalk/index.css");
#app {
 height: 300px;
 overflow: hidden;
}
/*展示列表的区域,超过200px出现滚动条*/
.list {
 max-height: 200px;
}


JavaScript

new Vue({
 el: "#app",
 data: {
 num: 30
 }
})

Element UI官方说不准什么时候就更新文档了,不过,真的可能是因为太简单了。

Python 相关文章推荐
python 编程之twisted详解及简单实例
Jan 28 Python
Python基于回溯法子集树模板解决全排列问题示例
Sep 07 Python
Python 模拟购物车的实例讲解
Sep 11 Python
python http接口自动化脚本详解
Jan 02 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
Python 移动光标位置的方法
Jan 20 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
python自动化测试通过日志3分钟定位bug
Nov 20 Python
基于Django与ajax之间的json传输方法
May 29 #Python
django ajax json的实例代码
May 29 #Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
May 29 #Python
PyTorch学习笔记之回归实战
May 28 #Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 #Python
Python实现爬虫爬取NBA数据功能示例
May 28 #Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 #Python
You might like
javascript,php获取函数参数对象的代码
2011/02/03 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
js tab效果的实现代码
2009/12/26 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
详解python中executemany和序列的使用方法
2017/08/12 Python
快速查询Python文档方法分享
2017/12/27 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Python使用type动态创建类操作示例
2020/02/29 Python
python爬虫基础知识点整理
2020/06/02 Python
小学关爱留守儿童活动方案
2014/08/25 职场文书
家长给老师的感谢信
2015/01/20 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
毕业典礼主持词
2015/06/29 职场文书
新人入职感言
2015/07/31 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书