最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序實現(xiàn)全國機場索引列表

 更新時間:2018年01月31日 14:25:59   作者:Rattenking  
這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)全國機場索引列表,實現(xiàn)MUI索引列表,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文為大家分享了微信小程序實現(xiàn)MUI索引列表的具體代碼,供大家參考,具體內(nèi)容如下

效果展示圖

這里寫圖片描述

實現(xiàn)的原理

  • ‘當前選擇機場'和右側的導航欄采用的是固定定位;
  • 左側的展示窗口的滾動采用的是scroll-view組件;
  • 選擇中的字母提示是自己WXSS樣式制作。

WXML

<view class="right-nav">
 <view bindtap="getCurrentCode" class="{{chooseIndex == index ? '.city-list-active' : ''}}" wx:for="{{cityList}}" style="height:{{codeHeight}}px" data-code="{{item.code}}">
 {{item.code}}
 </view>
</view>

<view class="city-layer {{isShowLayer ? '' : 'layer-hide'}}">
 {[code]}
</view>

<view class="current-choose-city">當前選擇機場:{{chooseCity}}</view>
<scroll-view class="city-scroll" scroll-y="true" style="height:{{cityHeight}}px" bindscroll="scroll" scroll-top="{{scrollTop}}">
 <view class="city-box" wx:for="{{cityList}}" wx:key="{{item.code}}">
  <view class="city-code">{{item.code}}</view>
  <view class="city-list" wx:for="{{item.cityList}}" wx:for-item="city" bindtap="getChooseCity" data-city="{{city}}"> 
    {{city}} 
  </view> 
 </view>
</scroll-view>

WXSS

.current-choose-city{
 position: fixed;
 width: 100%;
 height: 50px;
 line-height: 50px;
 padding: 0 10px;
 top: 0;
 left: 0;
 background-color: #fff;
 z-index: 10;
}
.right-nav{
 width: 30px;
 color: #888;
 text-align: center;
 position: fixed;
 bottom: 0;
 right: 0;
 background-color: rgb(200, 200, 200);
 z-index: 9;
}
.city-scroll{padding-top: 50px;}
.city-code{
 background-color: #f7f7f7;
}
.city-list,.city-code{
 height: 39px;
 line-height: 40px;
 padding: 0 30px 0 10px;
 overflow: hidden;
 border-bottom: 1px solid #c8c7cc;
}
.city-list-active{color:#007aff;}

/*提示點擊的字母 */
.city-layer{
 width: 70px;
 height: 70px;
 line-height: 70px;
 text-align: center;
 border-radius: 50%;
 color: #fff;
 background-color: rgba(0, 0, 0, .7);
 position: fixed;
 top: calc(50% - 35px);
 left:calc(50% - 35px);
 z-index: 11;
}
.layer-hide{display: none;}

JS

var city_list = require('./city.js');

Page({
 data: {
 cityList: city_list.city,
 chooseCity: '您還未選擇機場!',
 isShowLayer: false,
 chooseIndex: 0,
 len: [],
 code: null,
 codeHeight: null,
 cityHeight:null,
 scrollTop: 0
 },
 onLoad (options) {
 var windowHeight = wx.getSystemInfoSync().windowHeight;
 var arr = [];

 this.data.cityList.forEach(current => arr.push(current.cityList.length + 1));
 this.setData({ 
  codeHeight: (windowHeight - 50) / this.data.cityList.length,
  cityHeight: windowHeight - 50,
  len: arr
 });
 },
 getCurrentCode(e){
 var index = 0, sum = 0,self = this;

 for (var i = 0; i < this.data.cityList.length;i++){
  if (this.data.cityList[i].code === e.target.dataset.code){
  index = i
  break;
  }
 }
 for (var j = 0; j < index; j++) {
  sum += this.data.len[j];
 }

 this.setData({ 
  code: e.target.dataset.code,
  scrollTop: sum * 40,
  chooseIndex: index,
  isShowLayer: true  
 });

 setTimeout(() => {
  self.setData({ isShowLayer: false })
 },500);
 },
 getChooseCity(e){
 this.setData({ chooseCity: e.target.dataset.city });
 }
})

總結:

在onLoad函數(shù)中設置左側的展示高度和右側導航每一個字母所在盒子的高度;
getCurrentCode函數(shù)是獲取點擊字母的index,然后進行提示以及500ms后關閉提示;
getChooseCity函數(shù)是獲取選擇的機場,對chooseCity進行賦值。

代碼簡化:

var index = 0;
for (var i = 0; i < this.data.cityList.length;i++){
 if (this.data.cityList[i].code === e.target.dataset.code){
 index = i
 break;
 }
}

簡化為:

添加data-index="{{index}}",減少循環(huán)的消耗:
<view bindtap="getCurrentCode" class="{{chooseIndex == index ? '.city-list-active' : ''}}" wx:for="{{cityList}}" style="height:{{codeHeight}}px" data-code="{{item.code}}" data-index="{{index}}">
var index = e.target.dataset.index;

DEMO下載

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • js實現(xiàn)表格的隔行變色和上下移動

    js實現(xiàn)表格的隔行變色和上下移動

    這篇文章主要為大家詳細介紹了js實現(xiàn)表格的隔行變色和上下移動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Fetch超時設置與終止請求詳解

    Fetch超時設置與終止請求詳解

    這篇文章主要給大家介紹了關于Fetch超時設置與終止請求的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Fetch具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • JavaScript中的對象序列化介紹

    JavaScript中的對象序列化介紹

    這篇文章主要介紹了JavaScript中的對象序列化介紹,JavaScript中的對象序列化是通過JSON.stringify()來實現(xiàn)的,而反序列化則通過JSON.parse()來實現(xiàn),需要的朋友可以參考下
    2014-12-12
  • 不使用script導入js文件的幾種方法

    不使用script導入js文件的幾種方法

    這篇文章主要介紹了不使用script導入js文件的方法,需要的朋友可以參考下
    2016-10-10
  • 詳解如何使用Flutter動畫魔法使UI元素活起來

    詳解如何使用Flutter動畫魔法使UI元素活起來

    這篇文章主要為大家介紹了如何使用Flutter動畫魔法使UI元素活起來方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • JS實現(xiàn)單行文字不間斷向上滾動的方法

    JS實現(xiàn)單行文字不間斷向上滾動的方法

    這篇文章主要介紹了JS實現(xiàn)單行文字不間斷向上滾動的方法,以實例形式較為詳細的分析了文字滾動效果實現(xiàn)的原理與技巧,需要的朋友可以參考下
    2015-01-01
  • JS值當前DIV的ID值的代碼

    JS值當前DIV的ID值的代碼

    JS值當前DIV的ID值的代碼...
    2007-05-05
  • ES6通過babel轉碼使用webpack使用import關鍵字

    ES6通過babel轉碼使用webpack使用import關鍵字

    這篇文章主要介紹了es6通過babel轉碼還需要使用webpack才可以使用import關鍵字嗎的相關資料,需要的朋友可以參考下
    2016-12-12
  • 微信小程序實現(xiàn)分頁功能

    微信小程序實現(xiàn)分頁功能

    這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • JavaScript 函數(shù)replace深入了解

    JavaScript 函數(shù)replace深入了解

    在JavaScript中replace函數(shù)作為字符串替換函數(shù),這是一個威力強大的字符串操作函數(shù),對于常見字符串操作的推薦用法。這篇隨筆就來更加深入的理解它。
    2013-03-03

最新評論

车险| 晋中市| 娄底市| 金山区| 胶州市| 新乡市| 台中县| 广平县| 定州市| 灵武市| 秦皇岛市| 上蔡县| 固原市| 洪江市| 上犹县| 曲沃县| 屯留县| 普洱| 会东县| 北流市| 华安县| 密山市| 泾阳县| 江西省| 台东市| 曲水县| 波密县| 安图县| 中江县| 汉沽区| 岳阳市| 上虞市| 叙永县| 阿克| 淳安县| 丽江市| 广东省| 札达县| 玉田县| 通榆县| 阳城县|