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序列之list和tuple常用方法以及注意事项
Jan 09 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
python实现祝福弹窗效果
Apr 07 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 Python
WxPython实现无边框界面
Nov 18 Python
使用python创建Excel工作簿及工作表过程图解
May 27 Python
Python包资源下载路径报404解决方案
Nov 05 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
python 遍历磁盘目录的三种方法
Apr 02 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php函数式编程简单示例
2019/08/08 PHP
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
简单实现JS倒计时效果
2016/12/23 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
简单了解微信小程序的目录结构
2019/07/01 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
python代码实现ID3决策树算法
2017/12/20 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python监控nginx端口和进程状态
2019/09/06 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
最新茶叶店创业计划书
2014/01/14 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
合伙经营协议书
2014/04/18 职场文书
师德师风个人反思
2014/04/28 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
异地恋情人节寄语
2015/02/28 职场文书
力克胡哲观后感
2015/06/10 职场文书