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库urllib与urllib2主要区别分析
Jul 13 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python匹配中文的正则表达式
May 11 Python
python实现壁纸批量下载代码实例
Jan 25 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python文件时间操作步骤代码详解
Apr 13 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
Python爬虫基础初探selenium
May 31 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
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
vue中activated的用法
2021/01/03 Vue.js
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
python处理大数字的方法
2015/05/27 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python矩阵的转置和逆转实例
2018/12/12 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
python实现文件的备份流程详解
2019/06/18 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
python pytest进阶之fixture详解
2019/06/27 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
大学生入党思想汇报
2014/01/01 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
文明礼仪标语
2014/06/13 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书