前几天在掘金上看到一个开源项目(PyUI)在招人,一个基于vue.js的UI库,想着反正页闲着,就硬着头皮加入了(其实我都还没学vue.js)
两天速成了一下,学了点皮毛,就开始撸代码了,组织给我分配的是carousel跑马灯的组件
边学边做,一天半撸完了,效果完全参照iview的跑马灯效果(任务要求)
其实原本只要拿iview的代码过来改一改就好了,但是感觉这样页学不到什么,硬着头皮自己撸了
第一次写vue.js感觉在项目任务的督促下学的还是很快的
¶carousel组件构成
跑马灯的过渡效果主要用了<transition>组件
我的主要思想是将carousel插槽内的代码块提取出来,用一个<li>列表放置在<transition>内,然后实现轮播效果
html部分
1 | <template> |
¶js部分
我感觉相对于iview的代码,相同的效果我的代码量已经少了好多,当然可能人家的组件比较稳定吧,我的还没经过比较正规的测试
js部分主要就是一些函数鼠标对轮播图的操作,轮播函数是autoplay()和go()两个函数主要控制的
1 |
|
相对来说,代码量挺少了哈
¶css部分
css部分有个小问题就是,当底部指示器的位置设置在外部时,我是从carousel的高度中拿出5%的高度作为底部指示器的空间,然后carousel的高度是向外自适应的,所以carousel1的父节点必须指定高度,而且要和内部轮播代码框的高度一致
12月8日更新修复了上诉问题
以下为scss代码
1 | @charset "UTF-8"; |
放上GitHub地址
PyUi