知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
仿2020青桔單車微信小程序之首頁框架布局
發(fā)表時間:2021-1-11
發(fā)布人:葵宇科技
瀏覽次數(shù):111
接觸微信小程序也有一段時間了,為了挑戰(zhàn)下自己吧,于是決定試著仿一個微信小程序,并且決定把它寫成文章發(fā)表出來,同大家一起學習交流,會試著一直更新,直到把小程序寫完,寫的不好或者需要改進的,歡迎大家指出來一起交流進步。今天要跟大家分享的是青桔單車首頁的框架布局。
布局思路
觀察原圖
首先來看一下官方小程序的首頁圖
- 整個頁面為上下布局
- 最頂部的導航欄沒有采用小程序自帶的默認樣式
- 整個頁面左右兩邊離外邊距存在相同的間距,中下一部分有相同的背景色
- 部分區(qū)域存在相同的樣式
布局
有了以上的觀察,在結合這個小程序的其他頁面的情況,我決定將這個頁面切為的六部分,而功能欄和活動中心欄又可用一個大盒子裝起來,因為它們的背景色和外邊距相同

實現(xiàn)
頂部導航欄
官方的單車小程序眾多頁面的頂部導航欄內容樣式大概分為兩種,一種是首頁的這種導航欄不帶返回按鈕,還有一種是如下圖這種帶返回按鈕導航欄,還需考慮的就是導航欄背景顏色的不同。

{
"usingComponents": {
"topNav": "../../components/topNav/topNav"
},
}
復制代碼
之后就是如何是編寫我們的topNav組件了。 首先我們要知道頂部的導航欄可被細分為最上面顯示時間的狀態(tài)欄和與膠囊按鈕在同一層次的內容欄
狀態(tài)欄的高度(statusBarHeight)可根據(jù)微信小程序自帶的api wx.getStorageSync() 取得并且所有品牌的手機都是一樣的,內容欄的高度(navBarHeight 自定義的變量)會因為手機品牌的不同而不同,不過一般也將其分為安卓和蘋果兩大類,蘋果的一般為48px,安卓的為44px,至于手機型號也可以根據(jù)上述的api來取得,所有我們可以在全局定義一個用戶的對象來專門存儲與用戶有關的信息,然后把高度存入其中,方便之后的調用
wx.user = {} // 新建一個用戶對象用來存儲用戶的基本信息
let info = wx.getSystemInfoSync()//獲取用戶系統(tǒng)信息
// console.log(info) // 可打印出來
wx.user.statusBarHeight = info.statusBarHeight // 獲取狀態(tài)欄高度
if(info.platform === 'android'){ // 判斷機型來設置內容欄高度
wx.user.navBarHeight = 48
}else{
wx.user.navBarHeight = 44
}
復制代碼
接著來寫topNav的wxml結構,這個結構就比較簡單了,我簡單說下思路,首先在最外面布局一個view來裝所有的內容,然后再在這個view里放置兩個同級的盒子,一個用來裝整個的頂部導航欄內容,一個用來 占位使用 ,之所以需要這么一個占位塊,是因為我們頂部導航欄要使用固定定位使其始終固定在頁面的頂部,而使用定位會使其脫離文檔流,導致后面的dom結構往前頂,于是使用這么一個占位塊來占用它的位置,消除對后面dom結構的影響。裝整個的頂部導航欄內容的盒子里面再放入兩個view分別來裝狀態(tài)欄和內容欄,大致就是這樣
<view>
<!-- 占位塊,頂替脫離文檔流的頂部導航欄 -->
<view style="height:{{topHeight}}px">
</view>
<view class="container" style="background-color:{{backgroundColor}}">
<!-- 狀態(tài)欄 -->
<view style="height:{{statusBarHeight}}px"></view>
<!-- 內容欄 -->
<view wx:if="{{isIncludingisReturn}}" class="two" style="{{navBarStyle}}">
<image src="http://www.wxapp-union.com/image/左箭頭.png"/>
{{content}}
</view>
<view wx:else style="{{navBarStyle}}">{{content}}</view>
</view>
</view>
復制代碼
因為頂部導航欄樣式分為帶不帶返回按鈕,所有我干脆自定義一個可通過父組件傳過來 類型為boolean的變量 "isIncludingisReturn" ,再在dom結構使用 wx:if語句通過判斷"isIncludingisReturn"的值來決定導航欄的樣式,再定義一些其他的變量來接收父組件傳過來的值。
properties: {
isIncludingReturn:{
type: Boolean,
value: false
},
backgroundColor:{
type: String,
value: ''
},
content:{
type: String,
value: ''
},
textColor:{
type: String,
value:''
}
},
復制代碼
我們可以在data里再定義一個navBarStyle變量,通過ES6的拼接把之前獲取高度以及一些其他的樣式存進里面,再傳到dom里 之后只要在父組件里傳值就行了,這個板塊的css樣式很簡單,只要實現(xiàn)文字的垂直居中,選擇的方法也很多,設置line-height,或者彈性布局都行。
用戶個人信息
這個板塊的內容比較細,我們可以采用左右布局來實現(xiàn),左邊放文字信息,右邊放圖片和查看特權條

消息推送欄

<swiper class="pushMessage" autoplay interval="3000" duration="200" vertical="true" circular="true">
<block wx:for="{{messageList}}" wx:key="index">
<swiper-item>
<view class="message-box">{{item.content}}</view>
</swiper-item>
</block>
</swiper>
復制代碼
把messageList從數(shù)據(jù)源data調用,用上循環(huán)遍歷,在稍微設置一下swiper的基本屬性就行了。具體的可以查官方的小程序文檔,這里的布局也是彈性布局
青桔功能欄

青桔活動中心欄

底部導航欄

<view class="footer-bar">
<view class="bar bar-left">
<navigator class="footer-btn bar-mine" url="">我的</navigator>
<navigator class="footer-btn bar-findCar" url="">找車</navigator>
</view>
<view class="bar bar-right">
<navigator class="footer-btn bar-parkingArea" url="">停車區(qū)</navigator>
<navigator class="footer-btn bar-more" url="">更多</navigator>
</view>
</view>
<view class="footer-bar__code">
<view class="code-box">
<image src="http://www.wxapp-union.com/image/掃二維碼.png" />
</view>
</view>
復制代碼
實現(xiàn)效果
還是有點像的吧。。。
總結
這個頁面的布局還是不難的,很適合剛學不久的同學們作為入手,用的最多的還是彈性布局,有不懂的或者有改進的,歡迎在評論區(qū)留言
作者:xiaojianggege
來源:掘金
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。
相關案例查看更多
相關閱讀
- 云南網(wǎng)站開發(fā)
- 小程序技術
- 云南網(wǎng)站建設百度官方
- 百度人工排名
- 云南小程序商城
- 網(wǎng)絡公司報價
- 云南網(wǎng)絡營銷顧問
- 網(wǎng)站建設方案 doc
- 生成海報
- 小程序被騙
- 云南建設廳網(wǎng)站
- 云南網(wǎng)站建設制作
- 云南百度小程序
- 昆明網(wǎng)站開發(fā)
- 智慧農貿市場
- 汽車報廢拆解管理系統(tǒng)
- 云南etc小程序
- 云南網(wǎng)站建設服務公司
- 云南網(wǎng)站建設價格
- 汽車拆解系統(tǒng)
- 微信分銷
- 霸屏推廣
- 網(wǎng)站收錄
- web前端
- 小程序定制開發(fā)
- 汽車回收管理系統(tǒng)
- 小程序開發(fā)課程
- 云南網(wǎng)站建設公司地址
- 云南建站公司
- web開發(fā)