微信小程序实现select二级下拉

本文实例为大家分享了微信小程序实现select二级下拉的具体代码,供大家参考,具体内容如下

xiala.wxml

<!-- 列表选择 -->
<view class="list" hover-class="none" hover-stop-propagation="false">
    <text class="listText dd">3.请选择门店</text>
    <view class="box" hover-class="none" hover-stop-propagation="false">
        <view class='select_box'>
            <view class='select' catchtap='dianTap'>
                <input type="number" class='select_text' disabled="true" adjust-position="flase"
                    value="{{dian[index]}}" name="lie" />
                <image class='select_img {{dianShow&&"select_img_rotate"}}' src='/pages/image/b2.png'
                    background-size="contain"></image>
            </view>
            <view class="option_bbox" hover-class="none" hover-stop-propagation="false">
               <view class='option_box' style='height:{{dianShow?(area.length>5?325:dian.length*70):0}}rpx;'>
                <text class='option' wx:for='{{area}}' wx:key='this' data-index='{{index}}' data-aid='{{item.id}}'  catchtap='areaId'>{{item.name}}</text>
            </view>
            <view class='option_box' style='height:{{dianShow?(dian.length>5?325:dian.length*70):0}}rpx;'>
                <text class='option' wx:for='{{dian}}' wx:key='this' data-index='{{dian}}' catchtap='optionTap'>{{item}}</text>
            </view> 
            </view>
            
        </view>
    </view>

</view>

js页面

// pages/xiala/xiala.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    liebiao:[],
    price:[],
    index:0,
    area:[],
    areaId:'',
    dian:[]
  },
  

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   var that = this;
   that.area();
   
  },
// 获取区域
area(){
  var that = this;
    wx.request({
      url: 'xxxxxx',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success(res) {
        console.log(res.data)
        let area = res.data.data;
        let obMut = [];
        let areaId;
        for(var i=0; i<area.length;i++){
          areaId = area[0].id;
          obMut.push({id:area[i].id,name:area[i].name});
          }
          
          that.setData({
            areaId:areaId,
            area:obMut
           })
          //  console.log(that.data.areaId)
          that.dian();
      }
      
    })
    
},
// 点击改变区id
areaId(e){
  var that = this;
  that.setData({
    areaId: e.currentTarget.dataset.aid,
  })
  that.dian();
},
// 获取店
dian:function(){
  let that = this;
  let idx =that.data.areaId;
  let area = that.data.area;
  console.log(area)
  area.forEach((item, index) => {
    if (idx === item.id) {
      item.status = true
      wx.request({
        url: 'xxxxxxx',
        dataType: 'json',
        method: 'POST',
        header: {
         'Content-Type': 'application/x-www-form-urlencoded'
        },
        data: {
          aid: item.id
        },
        success(res) {
          // console.log(res)
          let fmutA = that.data.fmutA;
          if (res.data.status === 1) {
          console.log(res.data.shop)
          
          let dian = res.data.shop;
          let fDian = [];
          
          for(var i=0; i<dian.length;i++){
            fDian[i] = dian[i].name;
            }
          console.log(fDian)
          that.setData({
            dian: fDian,
           })
        }
          
  
        }
      })
  }else{
    item.status = false
  }
  })
},
  // 点击下拉显示框
  dianTap() {
    this.setData({
      dianShow: !this.data.dianShow
    });
  },
  // 点击下拉列表
  optionTap(e) {
    let Index = e.currentTarget.dataset.index;//获取点击的下拉列表的下标
    this.setData({
      index: Index,
      dianShow: !this.data.dianShow
    });
  }
})

wxss页面

/* 列表 */
/* pages/map/map.wxss */
.select_box{
  width: 63%;
  height:70%;
  border-radius: 14rpx;
  position: relative;
}
.select_box .select{
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  border-radius: 8rpx;
  display: flex;
  align-items: center;
}
.select_box .select .select_text{
  color: #777777;
  line-height: 28rpx;
  flex: 1;
}
.select_box .select .select_img{
  width: 20rpx;
  height: 20rpx;
  display: block;
  transition:transform 0.3s;
  position: absolute;
  right: 25rpx;
}
.select_box .select .select_img_rotate{
  transform:rotate(180deg); 
}
.select_box .option_box{
position: absolute;
top: calc(100% - 1px);
width: 100%;
box-sizing: border-box;
height: 0;
overflow-y: auto;
background: #fff;
transition: height 0.3s;
border: 1px solid #efefef;
border-right: 1px solid #efefef;
background: #fcfcfc;
}
.select_box .option_box .option{
  display: block;
  line-height: 38rpx; 
  font-size: 9pt;
  border-top: 1px solid #efefef;
  border-bottom: 1px solid #efefef;
  padding: 10rpx;
}
.option_bbox{
    display: flex;
    justify-content: row;
}
.select_box .option_box {
    position: relative;
}

界面比较原始,建议自行美化

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 微信小程序select下拉框实现效果

    小程序中是没有h5中的下拉 标签的 所以要实现下拉功能就必须自己动手写拉 这里为了更清楚的显示层级 就把源码直接复制过来了 <view class='list-msg'> <view class='list-msg1'> <text>商品金额</text> <text>¥99.00</text> </view> <!--下拉框 --> <view class='list-msg2' bindtap='bi

  • 微信小程序自定义select下拉选项框的方法

    本文实例为大家分享了微信小程序自定义select下拉选项框的具体代码,供大家参考,具体内容如下 第一步:创建组件所需的文件 第二步:开始配置组件 select.json {   "component": true,   "usingComponents": {     "select": "./select"   } } 第三步:自定义组件样式及js select.wxml <view class='com-select

  • 微信小程序实现简单的select下拉框

    微信小程序实现一个简单的select下拉框,供大家参考,具体内容如下 用的是transform过渡,没用动画 看看效果 废话不多说,直接上代码 wxml: <view class="item"> <label class="first"><text>*</text>公司/商户类型:</label> <!-- 通过点击事件改变图片的旋转角度.自定义下拉框的高度 --> <view class

  • 微信小程序下拉框组件使用方法

    小程序有时需要使用下拉框选项,通常我会使用 picker 组件实现.pick 组件使用 mode 来区分类别,默认使用普通选择器就行. 除了上述方式,我们也可以通过自定义组件实现,代码如下: //index.js Component({   /**    * 组件的属性列表    */   properties: {     propArray: {       type: Array,     }   },   /**    * 组件的初始数据    */   data: {     sele

  • 微信小程序 select 下拉框组件功能

    一.源码地址 https://github.com/imxiaoer/WeChatMiniSelect 二.效果图 录屏图片质量较差,所以大家会看到残影(捂脸) 三.组件源码 1. select.wxml <view class="select-box"> <view class="select-current" catchtap="openClose"> <text class="current-name

  • 微信小程序自定义select下拉选项框组件的实现代码

    知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件,这样只需引入组件和添加数据,其它的不用管,就能实现多个地方重复使用了. 第一步:创建组件所需的文件 我喜欢把共用的内容都放在和pages文件同级的地方,所以有了下面的目录结构 (1) 先创建一个自定义名字的文件夹,例如我上面的Componet (2) 再创建一个select文件夹,然后:右键这个文件

  • 微信小程序实现下拉刷新和上拉分页效果的方法详解

    目录 下拉刷新 上拉分页 下拉刷新 下拉刷新这个玩意吧,很有用,但是在我博客关联的小程序中,用处不大,也是,我那个小程序一共也没有几个页…… 我这里还是用在首页,上拉分页,下拉刷新重载分页.我就是这么做的. 下拉刷新和上拉分页还是有区别的. 下拉刷新需要在index.json中添加属性: "enablePullDownRefresh": true Index.js Page({ data: { // 文章数组 articleList:[], //每页显示的行数: pagesize: 2

  • 微信小程序实现select下拉框

    实现代码如下: <view class="fenlei">    <!-- 下拉框 -->    <view class="select_box">      <view class="select" catchtap="selectTaps">        <text class="select_text">{{selectDatas[inde

  • 微信小程序select下拉框实现源码

    这篇文章主要介绍了微信小程序select下拉框实现源码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 小程序中是没有h5中的下拉 标签的 所以要实现下拉功能就必须自己动手写拉,这里为了更清楚的显示小程序层级 就把源码直接复制过来了 <view class='list-msg'> <view class='list-msg1'> <text>商品金额</text> <text>¥99.00<

  • 微信小程序实现下拉选项框

    本文实例为大家分享了微信小程序实现下拉选项框的具体代码,供大家参考,具体内容如下 效果图 test.js /**    * 页面的初始数据    */   data: {     shows: false, //控制下拉列表的显示隐藏,false隐藏.true显示     selectDatas: ['消费账户', '平台返利账户', '微信钱包'], //下拉列表的数据     indexs: 0, //选择的下拉列 表下标,   },   // 点击下拉显示框   selectTaps()

随机推荐