微信小程序 实现listview带字母滑动

时间:2019-03-30
本文章向大家介绍微信小程序 实现listview带字母滑动,主要包括微信小程序 实现listview带字母滑动使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

微信小程序 实现listview带字母滑动

wxml

 <!--字母滑动-->
 <view class="letter-position" wx:if="{{filterType == 'name'}}" hidden="{{letterShow?'true':''}}" style="z-index:{{Zindex}}" catchtouchstart="handlerAlphaTap" catchtouchmove="handlerMove" catchtouchend="handlerEnd">
  <image class="no-stars star-icon" data-loc="star" src="../img/no-stars.png"></image>
  <text class="letter" wx:for="{{groups}}" wx:for-item="group" data-loc="{{group.id}}" wx:key="L_{{group.id}}">
   {{group.id}}
  </text>
  <text class="letter no-letter">
   #
  </text>
 </view>
<scroll-view scroll-into-view="{{locationTo}}" bindscrolltolower="onscrollLower" scroll-y="{{trues}}" style="height: {{clientHeihgt?clientHeihgt+'px':'auto'}}" bindscroll="scroll" scroll-top="{{scrollTop}}" hidden="{{favoriteCards.length==0 && starCards.length ==0}}">

js

handlerAlphaTap(e) {
  var ap = e.target.dataset.loc; //字母
  this.setData({
   locationTo: ap
  });

  var list = this.data.groups;
  this.offsetTop = (this.data.clientHeihgt - list.length * 16) / 2;

 },

 handlerMove(e) {
  var _this = this;
  var list = this.data.groups;
  var moveY = e.touches[0].clientY;
  var rY = moveY - this.offsetTop;
  if (rY >= 0) {
   var index = Math.ceil((rY - 16) / 16);
   if (0 <= index && index < list.length) {
    _this.setData({
     locationTo: list[index].id,
     nonwApID: list[index].id,
     fly: false,
     //nonwAp: list[index]
    });
    // _this.setData({
    //  nonwApID:_this.data.nonwAp.id
    // }); 
   }

  }
 },
 handlerEnd(e) {
  //  try{
  this.setData({
   nonwApID: '',
   fly: true,
   // locationTo:this.data.nonwAp.id
  });
  // }catch(e){

  // }
  var _this = this;
  this.setData({
   scoTTTTp: e.currentTarget.dataset.scrollTop
  });

 },

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!