一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

注冊登錄

小程序開發組件的使用:仿微信通訊錄

2018-09-12
導讀:類似微信通訊錄的形式,要怎么開發小程序的頁面,下面為大家介紹類似通訊錄的小程序組件樣式...

類似微信通訊錄的形式,要怎么開發小程序的頁面,下面為大家介紹類似通訊錄的小程序組件樣式

特色功能介紹
  1. 用戶只需按照格式傳入參數,組件能夠自動將參數按首字母分組,簡單方便;
  2. 組件右側首字母導航無需另外傳值,并且根據參數具體有哪些首字母顯示(沒有的咱就不要);
  3. 用戶進行上下滑動時,左右相互聯動;
  4. 點擊右側導航,組件會相應的上下滾動。
實現基礎

說到滾動當然少不了小程序的基礎組件scroll-view,該組件就是在此基礎上實現的;
監聽組件scroll-view的bindscroll事件,進而對組件數據進行操作,即可完成。

Wxml
  1. 滾動區域
<scroll-view scroll-y style="height:100%;white-space:nowrap;" scroll-into-view="{{toView}}" enable-back-to-top bindscroll="scroll" scroll-with-animation scroll-top="{{scrollTop}}">
  <view class="list-group" wx:for="{{logs}}" wx:for-item="group">
    <view class="title" id="{{group.title}}">{{group.title}}</view>
    <block wx:for="{{group.items}}" wx:for-item="user">
      <view id="" class="list-group-item">
        <image class="icon" src="{{user.avatar}}" lazy-load="true"></image>
        <text class="log-item">{{user.name}}</text>
      </view>
    </block>
  </view>
</scroll-view>

簡單說一下上述代碼:根據小程序文檔,在使用scroll-view組件用于豎向滾動時一定要設置高度,你們可以看到我在代碼中設置了'height:100%;'這就實現了組件的滾動高度是整個頁面。
但是請注意:很多同學會發現設置了高度100%后,組件并沒有效果,這是因為你沒有將頁面高度設置為100%,所以你還需在app.wxss中設置page的高度為100%
其他的屬性看文檔就好,我就不再多說;

2.側邊字母導航

<view class="list-shortcut">
  <block wx:for="{{logs}}">
    <text class="{{currentIndex===index?'current':''}}" data-id="{{item.title}}" bindtap='scrollToview'>{{item.title}}</text>
  </block>
</view>

3.固定在頂部的字母導航

仔細的同學能發現在滾動時,頂部有一個固定位置的字母導航,其值對應滾動到的區域

<view class="list-fixed {{fixedTitle=='' ? 'hide':''}}" style="transform:translate3d(0,{{fixedTop}}px,0);">
    <view class="fixed-title">
      {{fixedTitle}}
    </view>
</view>
Wxss

樣式太簡單了,就不發了,重點看js部分

js
  1. 拿到參數第一步當然是將參數列表渲染上去啦,
normalizeSinger(list) {
    //歌手列表渲染
    let map = {
      hot: {
        title: this.data.HOT_NAME,
        items: []
      }
    }
    list.forEach((item, index) => {
      if (index < this.data.HOT_SINGER_LEN) {
        map.hot.items.push({
          name: item.Fsinger_name,
          avatar:this.constructor(item.Fsinger_mid)
          })
      }
      const key = item.Findex
      if (!map[key]) {
        map[key] = {
          title: key,
          items: []
        }
      }
      map[key].items.push({
        name: item.Fsinger_name,
        avatar: this.constructor(item.Fsinger_mid)
      })
    })
    let ret = []
    let hot = []
    for (let key in map) {
      let val = map[key]
      if (val.title.match(/[a-zA-Z]/)) {
        ret.push(val)
      } else if (val.title === this.data.HOT_NAME) {
        hot.push(val)
      }
    }
    ret.sort((a, b) => {
      return a.title.charCodeAt(0) - b.title.charCodeAt(0)
    })
    return hot.concat(ret)
  },

將用戶數據分為兩大塊,即熱門組和不熱門組默認將參數的前10組歸類為熱門組,然后對所以參數安裝首字母進行排序分組。

  1. 計算各組高度
var lHeight = [],
    that = this;
let height = 0;
lHeight.push(height);
var query = wx.createSelectorQuery();
query.selectAll('.list-group').boundingClientRect(function(rects){
    var rect = rects,
        len = rect.length;
    for (let i = 0; i < len; i++) {
        height += rect[i].height;
        lHeight.push(height)
    }
 }).exec();
var calHeight = setInterval(function(){
    if (lHeight != [0]) {
       that.setData({
          listHeight: lHeight
       });
    clearInterval(calHeight);
  } 
},1000)

在獲取元素屬性上,小程序提供了一個很方便的api,wx.createSelectotQuery();具體使用方法請看節點信息API
使用該方法獲取到各分組的高度,存入lHeight中用于之后滾動時判斷使用;
同學們可以看到我在將lHeight賦值給data的listHeight時使用了定時器,這是因為獲取節點信息api是異步執行的,顧你直接進行賦值是沒有效果的,所以我使用了定時器功能;
我覺得這里使用定時器不是最好的處理方式,同學們有更好的方法請告訴我,謝謝
3.第三步就是在滾動的時候獲取滾動高度,相應的處理即可,滾動使用到了scroll-view自帶事件,這個事件會返回滾動的距離,及其方便

const listHeight = this.data.listHeight
// 當滾動到頂部,scrollY<0
if (scrollY == 0 || scrollY < 0) {
  this.setData({
    currentIndex:0,
    fixedTitle:''
  })
  return
}
// 在中間部分滾動
for (let i = 0; i < listHeight.length - 1; i++) {
  let height1 = listHeight[i]
  let height2 = listHeight[i + 1]
  if (scrollY >= height1 && scrollY < height2) {
    this.setData({
      currentIndex:i,
      fixedTitle:this.data.logs[i].title
    })
    this.fixedTt(height2 - newY);
    return
  }
}
// 當滾動到底部,且-scrollY大于最后一個元素的上限
this.setData({
  currentIndex: listHeight.length - 2,
  fixedTitle: this.data.logs[listHeight.length - 2].title
})
參數格式
list:[
    {
        "index": "X",
        "name": "薛之謙",
    },
    {
        "index": "Z",
        "name": "周杰倫",
    },
    {
        "index": "B",
        "name": "BIGBANG (??)",
    },
    {
        "index": "B",
        "name": "陳奕迅",
    },
    {
        "index": "L",
        "name": "林俊杰",
    },
    {
        "index": "A",
        "name": "Alan Walker (艾倫·沃克)",
    },
]

如果你們還需要其他的參數,對應的在后面加上即可。

重磅推薦:小程序開店目錄

第一部分:小商店是什么

第二部分:如何開通一個小商店

第三部分:如何登錄小商店

第四部分:開店任務常見問題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結算

第十部分:小程序客服

第十一部分:電商創業

第十二部分:小程序游戲開發

電話咨詢 微信咨詢 預約演示 0元開店
主站蜘蛛池模板: 狂躁美女大bbbbbb在线观看|亚洲=aV日韩=aV无码=a琪琪|BBW极度另类孕妇|中文资源在线官网|久久久久国产精品熟女影院|狠狠老司机 | #NAME?|国产99九九久久无码熟妇|人妻无码第一区二区三区|亚洲精品一区二|亚洲国产最大=av|黄瓜视频污网站 | 亚洲精品=a级九色|99在线啪|欧美中文视频|亚洲精品国产一区二区色欲影院|精品久久久久久亚洲精品|性欧美free德国极品 | c=aopom成人免费公开视频|中文字幕欧美人妻精品一区|91九幺丨成人|日韩久久国产|三年片大全免费观看|久草在在线 | 久久久999精品免费|99九九99九九九视频精品|国产高清区|一二三四在线看日本高清|国产乱轮视频|国产精品一区二区欧美 | 一区二区三区精液|成人二区三区|99精品国产99久久久久久97|久久久久久高清毛片|亚洲啊啊啊啊啊|亚洲人成亚洲精品 | 成人久久18免费网站图片|一本久道久久综合婷婷五月|色窝窝免费一区二区三区|国产无遮挡在线观看免费=aV|freexxx性麻豆hd16|国产精品久久久久久久网 | 爱福利视频导航|一级=a=a=a级毛片午夜在线播放|国产真实情侣MV|欧美三级视频在线观看|午夜人成免费视频|www.99爱 | 爱如潮水日本|宅男噜噜噜66网站高清|午夜宅男在线永久免费观看网|日日日干|国产成人精品一区二区三区无码|国产成人高清在线观看播放 | 国产无码免费视频|色天使色妺姝在线视频|国产一级黄|777婷婷|成在线人=av免费无码高潮喷水|无码精品久久久久久人妻中字 | 国产www成人|干干操操|国产久一一精品|日韩综合在线播放|二区视频|九九国产视频 | 粗壮挺进邻居人妻无码|久久天天拍|#NAME?|日本亚洲黄色|久久精品国产只有精品96|日本成年人免费网站 | 免费无码又爽又刺激高潮虎虎视频|国产性自爱拍偷在在线播放|成年人色视频|国产口爆吞精在线视频观看|2022国产爱性原创视频|最新版天堂中文在线 | 激情欧美一区二区三区免费看|亚洲青青草|国产精品免费久久久久影视|日本亚洲欧洲免费无码|国产精品XXX大片免费观看|国产一级片网 | 亚洲第一精品视频在线观看|欧美=a在线观看|免费国产美女爽到喷出水来视频|曰本三级在线|中文无码精品=a∨在线观看|在线观看日本黄色片 | 青青久草视频在线|波多野结衣中文字幕一区二区|美女天天操|日韩成人午夜视频|91中文字幕网|99久视频 | 粗壮挺进邻居人妻无码|久久天天拍|#NAME?|日本亚洲黄色|久久精品国产只有精品96|日本成年人免费网站 | 天天干少妇|中文字幕在线亚洲日韩6页|v片免费在线观看|国产人妻人伦=aV|日本老妇和子乱视频在线观看|少妇又色又紧又爽又高潮 | 精品国产96亚洲一区二区三区|水蜜桃综合久久无码欧美|国产精品久久久久久久第一福利|成人无码免费视频在线观看网址|伊人wwwyiren22cn|极品尤物被啪到呻吟喷水 | 亚洲第一二区|国产高清乱理伦片中文|久久99精品久久久久久9|热久久网|成人精品视频免费|国产在线拍揄自揄视频不卡99 | 三区视频在线观看|中文字幕第2页|色吧在线播放|啦啦啦视频在线观看高清免费|日本ⅹxxxx久色视频免费观看|亚洲精品久久久久久久蜜臀老牛 | #NAME?|欧美暖暖视频|91国内在线|毛多水多www偷窥小便|人妻无码人妻有码中文字幕|少妇人妻精品一区二区三区 | 久久毛片免费看一区二区三区|国产毛多水多高潮高清|一级黄色毛片|久久久久久久网|国产精品美女久久久久=av爽李琼|天天摸天天摸色综合舒服网 | 免费极品=aV一视觉盛宴|大陆少妇xxxx做受|懂色一区二区二区=av免费观看|女人的超长巨茎人妖在线视频|欧美激情国产精品视频一区二区|精产国品久久一二三产区区别 | 天天操天天干天天玩|亚洲人在线视频|国产精品18久久久久vr手机版特色|高清一二三区|被黑人粗黑大肉奉视频|97国产dvd | 美女高潮无遮挡免费视频|x8x8拨牐拨牐x8免费视频8文字|97青青|91麻豆精品国产自产在线|亚洲伦理精品|69=av在线看 | 蜜桃=aV少妇久久久久久高潮不断|国产精品VIDEOSSEX国产高清|亚洲成=aⅤ人片久青草影院按摩|夜色香影院|自拍视频区|超碰综合 | 国产一级片一区|欧美在线观看中文字幕|波波成人网|亚洲第一色区|人妻免费一区二区三区最新|久久www色情成人免费 | 国产人妖在线|国产午夜福利在线播放|亚洲国产成人精品久久久国产成人|高柳の肉嫁动漫在线播放|日韩久久精品一区二区三区|精品偷自拍另类在线观看 | 免费人妻无码=aV老色鬼|99爱影视|2018天天躁夜夜躁狠狠躁|#NAME?|91精品免费在线视频|国产免费二区 | 人妻系列无码专区按摩|日本天天色|sis色中色|国产素人在线观看人成视频|国产欧美精品日韩区二区麻豆天美|国产偷伦 | 91在线国产观看|各种高潮VIDEOS|亚洲一区二区三区精品视频|中文字幕天堂在线|高清国产一区|欧美浓毛大泬视频 | 国产精品久久久久久久浪潮网站|亚洲青草视频|乌克兰18极品XX00喷水|#NAME?|亚洲综合在线一区二区三区|国产超碰人人做人人爱ⅴ=a 91精品一区二区三区在线|情侣偷拍在线一区|天堂网在线.www天堂|成人=a毛片免费全部播放|日本国产一区二区|美女被日在线观看 | 高清偷自拍第1页|午夜精品久久久久久久爽|黄色影院网站|国产午夜无码片在线观看影院|性一交一乱一乱一视频96|久热精品在线观看视频 | 亚洲人成网站在e线播放|亚洲=aV一二三又爽又色又色|久久三级无码网站|国产黄色91|日本猛少妇|91视频在 | 少妇大战黑吊在线观看|淫片毛片视频|日本精品www|国产成人久久精品77777|亚洲国产欧美在线观看的|国产精品色情国产三级在 | 日本xxx大片免费观看|久色在线三级三级三级免费看|视频一区在线播放|国产=a∨国片精品白丝美女视频|天美传媒=aV成人片免费看|成人天堂yy6080亚洲高清 | #NAME?|国产成人亚洲欧洲在线观看|午夜私人影院网站|九九九亚洲|亚洲=aV成人无码久久精品老人|#NAME? | 男女草草草|国产精品成人久久|日韩成人激情|精品欧美国产一区二区三区不卡|草草網站影院白絲內射|国产免费又黄又爽又刺激蜜月=al | 好吊妞在线新免费视频|精品一区二区在线播放|久久=av片免费一区二区三区|无码少妇一区二区|中文=av字幕一区|国产精品久久国产精品99盘 | 水蜜桃一区二区|特黄特黄=a级毛片免费专区|99久免费视频精品老司机|#NAME?|狠狠综合久久久久尤物|欧美成人精品在线观看 |