「小程序」map組件層級之上實現(xiàn)cover-select

前言

現(xiàn)在是2019年1月初伺绽,小程序官方還沒有發(fā)布cover-input等組件嗜湃,在map層級之上可操作的組件只有cover-view澜掩、cover-image

正文

map組件屬于原生組件,層級最高肩榕,能在map層級之上可操作的組件只有cover-view株汉、cover-image,現(xiàn)有需求在map組件上層浮現(xiàn)彈框乔妈,可選擇(select)

小程序提供picker選擇,但是在彈框modal上顯然不符合需求勃刨,需要自己重新實現(xiàn)。

在cover-view標(biāo)簽里實現(xiàn)cover-select是根據(jù)點擊事件控制select-list的顯示和隱藏身隐,在list中選中的item放到顯示區(qū)

實現(xiàn)思路:

  • 用一個cover-view顯示選擇的內(nèi)容唯灵,沒有選擇時顯示初始化內(nèi)容;
  • 給顯示內(nèi)容的cover-view綁定點擊事件早敬,控制選擇list的顯示和隱藏;
  • 選擇的內(nèi)容最后放在顯示內(nèi)容的cover-view中水孩;

使用data-*共同屬性將選中的item傳出

重點知識:
關(guān)于e.target和e.currentTarget的區(qū)別:

  • e.target是返回觸發(fā)事件的對象
  • e.currentTarget返回的是綁定事件的對象

通常情況下target和currentTarget是一致的琐驴,我們只要使用target即可,但有一種情況必須區(qū)分這兩者的關(guān)系绝淡,那就是在父子嵌套的關(guān)系中,父元素綁定了事件悬包,單擊了子元素(根據(jù)事件流馍乙,在不阻止事件流的前提下他會傳遞至父元素垫释,導(dǎo)致父元素的事件處理函數(shù)執(zhí)行)撑瞧,這時候currentTarget指向的是父元素,因為他是綁定事件的對象预伺,而target指向了子元素,因為他是觸發(fā)事件的那個具體對象

核心代碼:

<!-- cover-select實現(xiàn)偽代碼 -->
<cover-view class="cover-select" style="{{selectHeight}}">
   <cover-view class='selected' bindtap='tapSelect'>{{selectModel}}</cover-view>
       <cover-view class='select-list'>
          <cover-view class='select-item' style="{{ item.value === selectValue ? 'color:green' : ''}}" wx:for='{{selectList}}' wx:key='{{item.value}}' data-value='{{item.value}}' bindtap='chooseItem'>{{item.label}}</cover-view>
   </cover-view>
</cover-view>
<!-- cover-select實現(xiàn)偽代碼 -->
.cover-select{
    background-color: #ffffff;
    width: 80%;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 5rpx;
    padding: 0 15rpx;

}
.selected{
    line-height: 40px;

}
 .select-list {
    overflow-y: scroll;
    max-height: 120px;
}

.select-item{
    line-height: 30px;
    
}
.select-item:hover{
    background-color: #f2f2f2;
}
  Page({
    data: {
        latitude: 23.099994,
        longitude: 113.324520,

        selectHeight: 'height: 40px', // select 組件的高度
        selectList: [{
            label: 'name',
            value: '1'
        }, {
            label: 'age',
            value: '2'
        }, {
            label: 'sex',
            value: '3'
        }, {
            label: 'label',
            value: '4'
        }, {
            label: 'value',
            value: '5'
        }], // select 組件的可選項
        selectModel: '選擇', // cover-view 顯示的選中的內(nèi)容
        selectValue:''
    },
    onReady: function(e) {
        this.mapCtx = wx.createMapContext('myMap')
    },

    /**
     * 顯示 Select
     */
    tapSelect() {
        this.setData({
            selectHeight: 'max-height:200px;'
        })
    },

    /**
     * 初始化選中item
     */
    itemChosen() {
        
    },
    /**
     * 選擇 item
     */
    chooseItem(e) {
        console.log(e.target.dataset.value);
        let value = e.target.dataset.value;

        let item = this.data.selectList.find((item) => item.value === value);
        this.setData({
            selectValue:item.value,
            selectModel: item.label,
            selectHeight: 'height:40px;'
        })
    }
})

效果圖:
初始化狀態(tài):

初始狀態(tài)

選擇時:


選擇時

選擇后:


選擇后
備注

源碼請點:
cover-select源碼

系列文章:
「小程序」map組件層級之上實現(xiàn)cover-input
「小程序」map組件層級之上實現(xiàn)cover-process-control

【敬請期待】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末然眼,一起剝皮案震驚了整個濱河市葵腹,隨后出現(xiàn)的幾起案子屿岂,更是在濱河造成了極大的恐慌,老刑警劉巖爷怀,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件运授,死亡現(xiàn)場離奇詭異,居然都是意外死亡吁朦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門雄右,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纺讲,“玉大人,你說我怎么就攤上這事熬甚。” “怎么了肃廓?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長亿昏。 經(jīng)常有香客問我,道長吝沫,這世上最難降的妖魔是什么递礼? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮脊髓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恭朗。我一直安慰自己依疼,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布膀值。 她就那樣靜靜地躺著,像睡著了一般沧踏。 火紅的嫁衣襯著肌膚如雪巾钉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天盒蟆,我揣著相機與錄音师骗,去河邊找鬼历等。 笑死辟癌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寡夹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼菩掏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了野揪?” 一聲冷哼從身側(cè)響起瞧栗,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挣惰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體憎茂,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡找都,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年能耻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晓猛。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡凡辱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出透乾,到底是詐尸還是另有隱情,我是刑警寧澤捧韵,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布汉操,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搜变。R本人自食惡果不足惜针炉,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篡帕。 院中可真熱鬧,春花似錦愉耙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春止潮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸿竖。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工铸敏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闪水。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓蒙具,卻偏偏與公主長得像,于是被迫代替她去往敵國和親禁筏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容