美文网首页工作生活
微信小程序车辆品牌选择

微信小程序车辆品牌选择

作者: _果不其然_ | 来源:发表于2019-07-03 14:42 被阅读0次
    格式比较类似于之前的城市选择,但是之前的城市选择格式有些太过繁琐了,然后看到了一篇比较好的处理方式,是采用节点查询的方法来找到左侧字母的定位,而且页面上的渲染也简单了很多,我觉得是一篇很棒的文章就摘录下来了,此篇文章为转载,先附上转载的链接地址 微信小程序通讯录首字母索引效果,车辆品牌选择列表

    还是先看一下页面的实现效果

    车辆品牌选择.gif
    代码代码,需要向前辈好好学习
    • WXML
    <block wx:for="{{list}}">
      <view class='letter' id="letter{{index}}">{{index}}</view>
      <view class='item' wx:for="{{item}}" wx:for-item="idx">
      {{idx.name}}
      </view>
      </block>
    <view class='letters'>
      <text wx:for="{{list}}" bindtap='chooseLetter' data-letter="{{index}}">{{index}}</text>
    </view>
    
    • WXSS
    page {
      width: 100%;
      height: 100%;
    }
    .letter {
      background: #ccc;
      font-size: 14px;
      padding-left: 10px;
    }
    .item {
      line-height: 40px;
      padding: 0 10px;
      border-bottom: 1px solid #eee;
    }
    scroll-view {
      width: 100%;
      height: 100%;
    }
    
    .letters {
      position: fixed;
      top: 0px;
      right: 0;
      width: 30px;
      height: 100%;
      background: #eee;
      display: flex;
      flex-flow: column;
    }
    .letters text {
      display: block;
      font-size: 14px;
      color: #666;
      text-align: center;
      flex: 1;
    }
    
    • JS
    var app = getApp()
    Page({
      data: {
       
      },
      onLoad: function (options) {
        var that = this;
        wx.request({
          url: 'http://api.besttool.cn/?c=Car&a=brandlist',
          method: 'post',
          header: {
            'content-type': 'application/x-www-form-urlencoded'
          },
          data: {
            appid: 1,
            secret: 'd90824a5a8224fd7bb4fdffd331c62aa'
          },
          success(res) {
            console.log(res);
            that.setData({ list: res.data.brandlist });
          }
        })
      },
    
      chooseLetter(e) {
        this.setData({
          curLetter: null
        });
        var letter = e.currentTarget.dataset.letter;
        console.log(letter);
    
        // 查找对应的id
        var id = "#letter" + letter;
        const query = wx.createSelectorQuery()  //创建节点查询器 query
        query.select(id).boundingClientRect() //这段代码的意思是选择Id = id的节点,获取节点位置信息的查询请求
        query.selectViewport().scrollOffset()  ////这段代码的意思是获取页面滑动位置的查询请求
        query.exec(function (res) {
          // res[0].top       // id节点的上边界坐标
          // res[1].scrollTop // 显示区域的竖直滚动位置
          wx.pageScrollTo({
            scrollTop: res[0].top + res[1].scrollTop,
            duration: 300
          })
        })
      },
    })
    

    相关文章

      网友评论

        本文标题:微信小程序车辆品牌选择

        本文链接:https://www.haomeiwen.com/subject/qqkqhctx.html