HTML+CSS+JS写一个通讯录组件

效果:(主要是参考小米Note3的通讯录的效果做的)

主要功能:

1. 滚动后,通讯录的模块标题会固定在顶部(图2)

2. 下一个标题很接近时,将上一个标题推上去的效果(过程:图3、图4、图5)

实现:

1. 模块标题会固定在顶部:这个实现比较简单,监听滚动的距离,如果大于0(相对的0)就显示固定的标题。

2. 推上去的效果:实际上是修改固定的标题的top值,导致的视觉错觉。当下一个标题距离顶部的距离超出可视区域,将标题又定位在顶部。

另外需要注意的地方:

1. 固定的标题一开始就需要展示,只是top比较大/小,不在可视区域内。否则计算的时候,它的高度会是0。影响推上去的效果的实现。

2. 通讯录组件需要固定高度,以便得到该组件滚动的距离。当然了,既然作为组件的话,计算值的时候需要把组件距离页面顶部的距离算进去。

3. 在页面中使用时,页面的内容(除了组件),需要给一个z-index和背景色,否则推上去的效果会盖住页面的内容/盖不住。

猜你喜欢

转载自www.cnblogs.com/hiuman/p/10609245.html