1、羽毛球网高度标准尺寸为球网长6.10米,宽76厘米,材料使用深色优质的天然或人造纤维细绳制成。网孔需为方形,边长在15—20毫米之间,网的上沿缝有75mm宽......
2023-03-14 956
很多现有的vue slider组件都是单个滑块,一次业务需要,只能自己动手来一个了。双向两滑块限定区域,实现过滤功能了。
看起来,是不是还挺有趣的,限定时间区域,温度,数量等等,都是不错的组件。实现起来,也不难的。
ruler是整个滑块区域,下面的date只是展示有的。并写了一个简单的filter过滤器,不明白过滤器的同学,请看《vue 内置过滤器总结(附加自定义过滤器)》startbar、endbar分别就是两个滑块了。上面添加了touchstart和touchmove事件,用于监听滑动的位置,计算值。
{{startStep | hoursFilter}} {{endStep | hoursFilter}} #c-slider{ .clearfix{ &:after{ content: ''; display: block; clear: both; } } .slider{ margin: auto; width: 80%; .date{ color: #333; font-size: .7rem; margin-top: 1rem; .fl{ float: left; } .fr{ float: right; } } .ruler{ background: #879BAE ; height: 1px; position: relative; margin-top: 75px; .bar{ position: absolute; top: -.5rem; height: 1rem; width: 1rem; border-radius: 100%; background: #D8D8D8; font-size: 0.3rem; line-height: 0.65rem; text-align: center; } .startbar{ left: 0; } .endbar{ right: 0; background: #879BAE; } } }}下方注释很详细,就简单的介绍一下吧
Vue.nextTick用于延迟执行一段代码,否则初始化initSlider很容易找不到元素。同时我们用vm.$refs.xxx来获取元素。元素上面记得添加ref属性。
created() { const vm = this; vm.$nextTick(() => { vm.initSlider(); })},methods: { initSlider(){ const vm = this; vm.$ruler = vm.$refs.ruler; vm.$bar = vm.$refs.bar; vm.$endbar = vm.$refs.endbar; // 滑竿多长距离 vm.amountW = vm.$ruler.clientWidth - vm.$bar.clientWidth; // 总共多少步 vm.step = vm.amountW / (vm.intervalEnd - vm.intervalStart); }}有兴趣的同学,可以继续开发,优化等等。
源码地址:vue-c-slider
标签: VUE开发一个组件——Vue Slider 双向两滑块限定区域
相关文章
1、羽毛球网高度标准尺寸为球网长6.10米,宽76厘米,材料使用深色优质的天然或人造纤维细绳制成。网孔需为方形,边长在15—20毫米之间,网的上沿缝有75mm宽......
2023-03-14 956
1、换气时,鼻子和嘴都要用到。一般情况下,蛙泳换气时,是用嘴在水面上吸气,鼻子在水面下呼气。初学时不能很好的掌握这个频率的话,可以借用鼻夹,只用嘴来完成呼气吸气......
2023-03-14 1206
1、对于儿童。如果是儿童,一般建议连体的,因为连体的包裹性更好,可以防止宝宝的肚子以及肚脐接触水分而受凉,也可以保护儿童的皮肤不受泳池里面消毒剂的侵害,所以儿童......
2023-03-14 1142
1、传说英雄柏修斯是天神宙斯之子。英仙座典娜要他设法去取魔女美杜莎的头,答应事后将他提升到天界。美杜莎的头上长满毒蛇,谁看她一眼,就会变成石头。珀尔修斯在神的帮......
2023-03-14 1134
1、西方的圣诞节是每年阳历的12月25日,也就是说在圣诞节出生的人是摩羯座。 而12月25日出生的人性格很忠诚、独立、精力充沛,但是行动力极其缓慢,天生的挑剔家......
2023-03-14 1236