前言
最近公司有個(gè)項(xiàng)目需要用到小程序的map組件,要實(shí)現(xiàn)一個(gè)類似摩拜紅包車的信息彈框,簡(jiǎn)單說就是在map組件上添加自定義view。
摩拜紅包車
直接在map上使用view,image等是不行的,因?yàn)椴榭次⑿判〕绦駻PI底部Bug&Tip有一句話,map 組件是由客戶端創(chuàng)建的原生組件,它的層級(jí)是最高的。所以直接在map上使用view等沒有效果的,即使使用z-index改變z軸也是沒用的,網(wǎng)上也查了很多,都說是沒辦法使用這種布局的。
后來仔細(xì)查看微信小程序API文檔,發(fā)現(xiàn)一個(gè)控件cover-view,沒錯(cuò),就是今天的主角。查看文檔第一行發(fā)現(xiàn)有這么一句話,覆蓋在原生組件之上的文本視圖,可覆蓋的原生組件包括map、video、canvas、camera,只支持嵌套cover-view、cover-image。有了這句話我就心安了,看來是可以實(shí)現(xiàn)了。
代碼實(shí)現(xiàn)
.wxml
-
<map id="map" longitude="{{point.longitude}}" latitude="{{point.latitude}}"
-
markers="{{markers}}" scale="{{mapScale}}" show-location bindregionchange="regionchange"
-
bindmarkertap="markertap" controls="{{controls}}" bindcontroltap="controltap"
-
style="width: {{mapWidth}}; height: {{mapHeight}};top: {{mapTop}}">
-
<cover-view class="place_info">
-
<cover-view class="place_info_parking">cover-view</cover-view>
-
<cover-view class="place_info_surplus">可覆蓋在原生組件的組件</cover-view>
-
<cover-view class="place_info_order">66666</cover-view>
-
</cover-view>
-
</map>
.wxss
-
.place_info {
-
position: relative;
-
width: 90%;
-
margin-left: 20rpx;
-
margin-top: 10rpx;
-
border-radius: 5rpx;
-
background: white;
-
padding: 10rpx;
-
}
-
.place_info_parking{
-
font-size: 50rpx
-
}
-
.place_info_surplus{
-
color: #999999
-
}
-
.place_info_order{
-
margin-top: 10rpx;
-
margin-bottom: 10rpx;
-
margin-left: 20rpx;
-
background-color: #ff5722;
-
color: #FFFFFF;
-
padding: 10rpx;
-
width: 90%;
-
border-radius: 5rpx;
-
text-align: center;
-
}
效果圖
map上添加view
|