关于微信小程序自定义Picker样式的picker-view

这里给大家介绍一下在开发微信小程序中使用到需要自定义样式的picker(picker-view)的基本用法
在这里插入图片描述
这里就是一个很简单的自定义样式的Picker。
下面贴出代码

wxml:

<picker-view indicator-class='pickerCol' bindchange="bindChange" class="{{ pickerShow ? 'show' : '' }}">
    <view class='btns'>
      <view bindtap="closePicker">取消</view>
      <view bindtap="getValue">确认</view>
    </view>
    <picker-view-column>
      <view wx:for="{{pickerArray}}" style="line-height: 50rpx" class="{{ pickerIndex === index ? 'pick-text' : '' }}">{{item}}</view>
    </picker-view-column>
  </picker-view>

wxss:

// 设置头部的取消和确定按钮
picker-view .btns {
  width: 100%;
  height: 100rpx;
  color: #baa076;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
}

picker-view .btns view {
  width: 20%;
  text-align: center;
  font-size: 32rpx;
}

picker-view {
  position: fixed;
  bottom: 0;
  left: 0;
  background-color: #FFF;
  text-align: center;
  box-sizing: border-box;
  width: 100%;
  height: 0;
  border-radius: 30rpx 30rpx 0 0;
  z-index: 999;
}

// 添加弹出的过渡动画
picker-view.show {
  height: 36%;
  transition: all 0.4s;
}

// 设置单列数据的样式
picker-view-column {
  border-radius: 30rpx 30rpx 0 0;
  color: #B8B8B8;
  font-size: 32rpx;
  margin-top: 47rpx;
}

// 设置选中框的样式
.pickerCol {
  width: 100%;
  height: 50rpx;
  color: #baa076;
  border-top: 1px solid #f2f3f5;
  border-bottom: 1px solid #f2f3f5;
}

// 添加前面的三角形
.pickerCol::before {
  width: 10rpx; 
  height: 28rpx;
  position: absolute;
  left: 200rpx;
  top: 15rpx;
  background-image: url(//demo.17weiju.com/wxsh/wxsh/image/food-sjx.png);
  background-size: 100% 100%;
}

// 这里的两个伪类有默认样式(两条线),但是介于我已经重写了before,这里就取消after的显示
.pickerCol::after {
  display: none;
}

// 自定义选中的时候字体颜色和大小
.pick-text {
  color: #baa076;
  font-size: 34rpx;
}

在使用这个picker-view组件时最主要的就是样式问题,它不像picker能给你主动添加wxml的结构,picker-view的结构主要还是自己完成。

(js逻辑部分很简单就不贴出来了,确实我太懒了)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值