box-day 装天数据的一个最外层盒子,
check-line 实现选中的那2条线,
day-list 最外层黑色效果数据,
day-wheel 灰色滚轮部分
<div class="picker-panel">
<!--other box-->
<div class="box-day">
<div class="check-line"></div>
<div class="day-checked">
<div class="day-list">
<div class="list-div" v-for="day in renderListDay">
{{day.value}}
</div>
</div>
</div>
<div class="day-wheel">
<div class="wheel-div" v-for="day in renderListDay" transform: rotate3d(1, 0, 0, 80deg) translate3d(0px, 0px, 2.5rem);>
{{day.value}}
</div>
</div>
</div>
<!--other box-->
</div>
.day-wheel{
position: absolute;
overflow: visible;
height: px2rem(68px);
font-size: px2rem(36px);
top:px2rem(180px);
left: 0;
right: 0;
color:$unchecked-date;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
.wheel-div{
height: px2rem(68px);
line-height: px2rem(68px);
position: absolute;
top:0;
width: 100%;
text-align: center;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
主要涉及的css属性
transform-style: preserve-3d;展示3D效果,
-webkit-backface-visibility: hidden;滚轮背后部分自动隐藏
postition:absolute;
用来定位轮子
transform: rotate3d(1, 0, 0, 80deg) translate3d(0px, 0px, 2.5rem);每个数据旋转的角度 和滚轮侧视图圆的半径
每个数据旋转的角度和构造原理

如上图
是我们滚轮的效果立体图,r 就是我们 translated3d(0px,0px,2.5rem) 这条css中的2.5rem,
如果没有这句css 那么所有的数据将汇聚在圆心
上图 不做旋转(红色代表我们看到的数据效果)










