欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序開發(fā)之好友列表字母列表跳轉(zhuǎn)對應(yīng)位置

 更新時間:2017年09月26日 14:25:12   投稿:lqh  
這篇文章主要介紹了微信小程序開發(fā)之好友列表字母列表跳轉(zhuǎn)對應(yīng)位置的相關(guān)資料,希望通過本文能幫助到大家讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下

微信小程序開發(fā)之好友列表字母列表跳轉(zhuǎn)對應(yīng)位置

前言:

在小程序里實現(xiàn)微信好友列表點擊右側(cè)字母列表跳轉(zhuǎn)對應(yīng)位置效果。寫了個demo,核心部分很簡單,所以沒多少注釋,如果遇到問題就加群問我吧。

核心技術(shù)點:

1、小程序scroll-view組件的scroll-into-view, scroll-with-animation. scroll-y屬性。
2、小程序的touch事件的應(yīng)用。
3、Js定時器的應(yīng)用。

view頁面代碼:

index.wxml

 class="container" scroll-y>
  class="info" id="info" scroll-with-animation scroll-y scroll-top="200" scroll-into-view="{{toView}}" style="height:{{height}}px;">
   class="iitem" id="{{item.id}}" wx:for="{{info_list}}" wx:key="1">
   {{item.id}} . {{item.desc}}
  
 
  class="letter {{active == true ? 'active': ''}}" bindtouchstart='start' bindtouchmove='move' bindtouchend='end'>
   class="litem" bindtap='down' data-index="999">☆
   class="litem" wx:for="{{letter_list}}" bindtap='down' wx:for-index="index" wx:key="2" data-index="{{index}}" style="height: {{letter_height}}px;">{{item}}
 
 class="tips" hidden="{{hide}}">{{curView}}

js代碼:

index.js

//index.js
//獲取應(yīng)用實例
const app = getApp()
Page({
 data: {
  letter_list: [],
  info_list: [],
  hide: true,
  active: false,
  toView: 'A',
  curView: 'A',
  letter_height: 18
 },
 onLoad: function () {
  this.active = false;
  this.timer = null;
  var letter_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
  var info_list = [];
  for (var i = 0; i < 26; i++) {
   var obj = {};
   obj.id = letter_list;
   obj.desc = '這是一個用于測試的DEMO。1.目標(biāo)是用于實現(xiàn)微信好友列表的點擊首字母跳轉(zhuǎn)到對應(yīng)好友位置。2.目標(biāo)是用于實現(xiàn)微信好友列表的點擊首字母跳轉(zhuǎn)到對應(yīng)好友位置';
   info_list.push(obj);
  }
  this.setData({
   height: app.globalData.height,
   info_list: info_list,
   letter_list: letter_list,
   sHeight: 100 * 26 + 25
  });
 },
 start: function (e) {
  this.setData({
   active: true,
   hide: false
  })
 },
 end: function (e) {
  if (this.timer) {
   clearTimeout(this.timer);
   this.timer = null;
  }
  var moveY = e.changedTouches["0"].clientY - 18, that = this;
  var curIndex = parseInt(moveY / 18);
  var view = this.data.letter_list[curIndex];
  this.setData({
   toView: view,
   active: false
  });
  if (!this.timer) {
   this.timer = setTimeout(function () {
    that.setData({
     hide: true
    })
    that.timer = null;
   }, 1000);
  }
 },
 move: function (e) {
  var moveY = e.changedTouches["0"].clientY - 18;
  var curIndex = parseInt(moveY / 18);
  var view = this.data.letter_list[curIndex];
  this.setData({
   curView: view
  })
 },
 down: function (e) {
  if (this.timer) {
   clearTimeout(this.timer);
   this.timer = null;
  }
  var index = e.currentTarget.dataset.index,
   that = this;
  if (index != 999) {
   var view = this.data.letter_list[index];
   this.setData({
    toView: view,
    curView: view
   })
  } else {
   this.setData({
    toView: 'A',
    curView: '☆'
   })
  }
  if (!this.timer) {
   this.timer = setTimeout(function () {
    that.setData({
     hide: true
    });
    that.timer = null;
   }, 1000);
  }
 }
})

樣式部分

index.wxss

/**index.wxss**/
text {
 font-weight: bold
}
.letter {
 font-size: 12px;
 width: 24px;
 height: 100%;
 position: fixed;
 right: 0;
 top: 0;
 z-index: +999;
}
.litem {
 width: 24px;
 height: 18px;
 line-height: 18px;
 text-align: center;
}
.info {
 font-size: 12px;
 text-align: justify;
 overflow: hidden;
}
.active {
 background: rgba(0, 0, 0, 0.2);
}
.iitem {
 padding: 10rpx 10rpx;
 margin-bottom: 10rpx;
 border-radius: 8rpx;
 background: rgba(222,222,222,0.2);
 box-sizing: border-box;
}
.tips {
 width: 40px;
 height: 40px;
 background: rgba(0,0,0,0.4);
 font-size: 20px;
 text-align: center;
 line-height: 40px;
 color: #fff;
 position: fixed;
 left: 50%;
 top: 50%;
 margin: -20px;
 z-index: +999;
 border-radius: 10rpx;

如有疑問請留言或者到本站社區(qū)交流討論,本站關(guān)于微信小程序的文章還有很多,希望大家搜索查閱,感謝閱讀,希望能幫助到大家謝謝大家對本站的支持!

相關(guān)文章

  • JavaScript實現(xiàn)Tab標(biāo)簽頁切換的最簡便方式(4種)

    JavaScript實現(xiàn)Tab標(biāo)簽頁切換的最簡便方式(4種)

    這篇文章主要介紹了JavaScript實現(xiàn)Tab標(biāo)簽頁切換的最簡便方式(4種),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • js判斷是否為ie的方法小結(jié)

    js判斷是否為ie的方法小結(jié)

    這篇文章主要介紹了js判斷是否為ie的方法,有需要的朋友可以參考一下
    2014-01-01
  • 微信小程序組件通信和behavior使用詳解

    微信小程序組件通信和behavior使用詳解

    behaviors是小程序中,用于實現(xiàn)組件間代碼共享的特性,類似于 Vue.js 中的 “mixins”,這篇文章主要介紹了微信小程序組件通信和behavior使用,需要的朋友可以參考下
    2022-08-08
  • layui使用form表單實現(xiàn)post請求頁面跳轉(zhuǎn)的方法

    layui使用form表單實現(xiàn)post請求頁面跳轉(zhuǎn)的方法

    今天小編就為大家分享一篇layui使用form表單實現(xiàn)post請求頁面跳轉(zhuǎn)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JS中欺騙詞法作用域的eval和with詳解

    JS中欺騙詞法作用域的eval和with詳解

    詞法作用域就是定義在詞法階段的作用域,如果詞法作用域完全由寫代碼期間函數(shù)所聲明的位置來定義,怎樣才能在運行時來“修改”(也可以說欺騙)詞法作用域呢?JavaScript 中有兩種機(jī)制來實現(xiàn)這個目的,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • javascript 檢測瀏覽器類型和版本的代碼

    javascript 檢測瀏覽器類型和版本的代碼

    如果對javascript了解不是特別深入的話,很容易就會寫出不兼容的代碼(就像我),這時候就得判斷瀏覽器了。比如事件偵聽、一些鼠標(biāo)和鍵盤事件、Range等,一些都會不一樣.下面列出幾種常用的檢測瀏覽器方法,以饗觀眾!
    2009-09-09
  • javascript數(shù)組去重的六種方法匯總

    javascript數(shù)組去重的六種方法匯總

    數(shù)組去重復(fù)是一個常見的需求,我們暫時考慮同類型的數(shù)組去重復(fù)。主要是理清思路和考慮下性能。以下方法,有各人總結(jié)也有網(wǎng)上熱心網(wǎng)友的方法,這里簡單地總結(jié)一下。
    2015-08-08
  • javascript跨域的方法匯總

    javascript跨域的方法匯總

    JavaScript出于安全方面的考慮,不允許跨域調(diào)用其他頁面的對象。但在安全限制的同時也給注入iframe或是ajax應(yīng)用上帶來了不少麻煩。這里把涉及到跨域的一些問題簡單地整理一下
    2015-10-10
  • js實現(xiàn)表單校驗功能

    js實現(xiàn)表單校驗功能

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)表單校驗功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 手機(jī)端轉(zhuǎn)換rem適應(yīng)

    手機(jī)端轉(zhuǎn)換rem適應(yīng)

    本文主要介紹了手機(jī)端轉(zhuǎn)換rem適應(yīng)的方法實例。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04

最新評論