這篇文章給大家分享的是有關(guān)微信小程序開發(fā)之實(shí)現(xiàn)好友列表字母列表跳轉(zhuǎn)對應(yīng)位置的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)一直通過網(wǎng)站建設(shè)和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動互聯(lián)產(chǎn)品、全網(wǎng)整合營銷推廣服務(wù)為核心業(yè)務(wù)。10年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
微信小程序開發(fā)之好友列表字母列表跳轉(zhuǎn)對應(yīng)位置
前言:
在小程序里實(shí)現(xiàn)微信好友列表點(diǎn)擊右側(cè)字母列表跳轉(zhuǎn)對應(yīng)位置效果。寫了個demo,核心部分很簡單,所以沒多少注釋,如果遇到問題就加群問我吧。
核心技術(shù)點(diǎn):
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)用實(shí)例 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)是用于實(shí)現(xiàn)微信好友列表的點(diǎn)擊首字母跳轉(zhuǎn)到對應(yīng)好友位置。2.目標(biāo)是用于實(shí)現(xiàn)微信好友列表的點(diǎ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;
感謝各位的閱讀!關(guān)于“微信小程序開發(fā)之實(shí)現(xiàn)好友列表字母列表跳轉(zhuǎn)對應(yīng)位置的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!