无联动picker组件
栏目: JavaScript · 发布时间: 5年前
内容简介:省市区联动这种插件应该很多人用过,在我第一次写这种功能的时候,第一时间就是找插件,尤其是移动端,对当时的我来说从来没有想过自己写。最近看了同事写的省市区的组件,发现几乎所有的picker组件都是根据手指移动距离来滑动,但是有个问题,就是我快速的滑动一下,组件是没办法像原生scroll一样滑动一段距离。想要做这种效果想要计算手指在移动的那段时间内的速度,然后移动一段距离,就像一个小型的小引擎一样。于是自己就想,直接用原生的scroll一样,快速滑动一下,能够自主的移动很长一段距离。本来想把联动和不联动的写成一
省市区联动这种插件应该很多人用过,在我第一次写这种功能的时候,第一时间就是找插件,尤其是移动端,对当时的我来说从来没有想过自己写。
最近看了同事写的省市区的组件,发现几乎所有的picker组件都是根据手指移动距离来滑动,但是有个问题,就是我快速的滑动一下,组件是没办法像原生scroll一样滑动一段距离。想要做这种效果想要计算手指在移动的那段时间内的速度,然后移动一段距离,就像一个小型的小引擎一样。
于是自己就想,直接用原生的scroll一样,快速滑动一下,能够自主的移动很长一段距离。本来想把联动和不联动的写成一个组件,后来发现针对联动和不联动,对于数据处理会比较麻烦,对用起来的时候要专门处理成组件需要的数据格式麻烦了,于是把联动和不联动的分开来写。
同样的,先说明原理:
布局“
仅支持最多5列,这边采用float布局,兼容性没问题。每一列都能够scroll。每一列的高度都是40,上下各有两个空白的li。
给每一列一个id,然后给每一列添加滚动监听,在滚动结束的时候获取scrollTop,然后把scrollTop变成40的整数倍。
滚动结束采用了节流的方法,也就是设定一个定时器去触发滚动结束。
我这边返回的是多少列就返回每一列的选中index,所以在改变选中状态的时候先判断当前是否跟之前选中的相同,不相同就改变选中index数组。
由于手指在滑动期间要禁止滚动的定时器,所以在start的时候设定一个状态,要是手指没有end就不触发scroll的定时器方法。
使用:
List的数据格式:
[ [{value: '第三列'},{value:'第三列'},{value: '第三列'}], [{value: '第三列'},{value:'第三列'},{value: '第三列'}], [{value: '第三列'},{value:'第三列'},{value: '第三列'}], [{value: '第三列'},{value:'第三列'},{value: '第三列'}], [{value: '第三列'},{value:'第三列'},{value: '第三列'}] ]
效果:
因为是自己用,希望想要使用的可以研究透彻一下,这边还有很多没有实现,比如默认选中,每一列展示的数量等,有需要的可以留言,不过还是希望拷贝源码然后自己改成自己想要的。
已经发布npm: www.npmjs.com/package/wad…
欢迎关注Coding个人笔记 公众号
以上所述就是小编给大家介绍的《无联动picker组件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Vue组件放送之下拉省市区联动
- 基于Vue组件化的日期联动选择器
- 基于Vue2的简易的省市区县三级联动组件
- 小程序滚动组件,左边导航栏与右边内容联动效果实现
- Cobaltstrike、armitage联动
- 三级联动
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法笔记上机训练实战指南
胡凡、曾磊 / 机械工业出版社 / 2016-7 / 57
《算法笔记上机训练实战指南》是《算法笔记》的配套习题集,内容按照《算法笔记》的章节顺序进行编排,其中整理归类了PAT甲级、乙级共150多道题的详细题解,大部分题解均编有题意、样例解释、思路、注意点、参考代码,且代码中包含了详细的注释。读者可以通过本书对《算法笔记》的知识点进行更深入的学习和理解。书中印有大量二维码,用以实时更新或补充书籍的内容及发布本书的勘误。 《算法笔记上机训练实战指南》可......一起来看看 《算法笔记上机训练实战指南》 这本书的介绍吧!