1. 程式人生 > >微信小程式靜態頁面的實現

微信小程式靜態頁面的實現

前段時間微信出了個小程式,我也學習了一下,自己實現了一個小程式。當然裡面都是靜態頁面,並無資料的操作。要開發小程式就得用微信的開發工具了,它現在不限制使用者是否有Appid都可以下載來使用了。先上這個小程式的效果圖:
這裡寫圖片描述
圖片不夠用就重複的使用了。

一、程式碼的實現

1、專案的結構

這裡寫圖片描述
其中1是放圖片的,2中的pages是放頁面的相關檔案,如js,json,wxss,wxml這些檔案,每個頁面對應的配置檔案都要放在一起,第3部分是程式的整體的配置,分別有app.js,app.json,app.wxss這些檔案。

2、頁面的設定

每個頁面都要在app.json檔案中設定,底部導航的設定,也是在這個檔案裡實現。

"pages":[
    "pages/index/index",
    "pages/contacts/constact",
    "pages/finds/myfind",
    "pages/mes/me",
    "pages/logs/logs"
  ]

底部導航的程式碼設定如下:

"tabBar":{
    "color":"#9b9db1",
    "selectedColor":"#3cc51f",
    "borderStyle":"black",
    "backgroundColor":"#ffffff",
    "list":[
      {
        "pagePath"
:"pages/index/index", "iconPath":"images/wechat.png", "selectedIconPath":"images/wechatHL.png", "text":"訊息" }, { "pagePath":"pages/contacts/constact", "iconPath":"images/wechat.png", "selectedIconPath":"images/wechatHL.png", "text":"通訊錄" }, { "pagePath"
:"pages/finds/myfind", "iconPath":"images/wechat.png", "selectedIconPath":"images/wechatHL.png", "text":"發現" }, { "pagePath":"pages/mes/me", "iconPath":"images/wechat.png", "selectedIconPath":"images/wechatHL.png", "text":"我" } ] }

其中”pagePath”:”pages/index/index”就是想要跳轉的頁面,”iconPath”:”images/wechat.png”就是沒被選中的圖片,”selectedIconPath”:”images/wechatHL.png”就是被選中時候的圖片。

3、訊息頁面的實現。

3.1、index.wxml的實現
這裡寫圖片描述

<!--index.wxml-->
<view style="overflow-x:hidden;overflow-y:auto">
 <view class="messageList">
   <block wx:for="{{messages}}">
      <navigator url="">
        <view class="item">
        <!--頭像部分-->
          <view class="item-left">
             <image class="image" src="{{item.url}}"></image>
             <view class="mark" wx:if="{{item.num>0}}"><text class="text">{{item.num}}</text></view>
          </view>
          <!--中間訊息-->
          <view class="item-middle">
            <view ><text class="title">{{item.title}}</text></view>
            <view><text class="message">{{item.message}}</text></view>
          </view>
          <!--右邊部分-->
          <view class="item-right">
            <view class="item-right1"><text class="time">{{item.time}}</text></view>
            <view wx:if="{{!item.remove}}" class="item-right2"><image src="{{item.flag}}" class="img_flag"></image></view>
          </view>
        </view>
        <view class="line"></view>
      </navigator>
   </block>
 </view>
</view>

第1是頭像部分,第2是中間的訊息,第3是最右邊的部分。
wx:for=”{{messages}}”就是一個迴圈。
wx:if=”{{item.num>0}}”是一個if語句,這裡表示當數字大於0,則顯示這個view,否則隱藏。
要設定控制元件的值,通過{{}}即可,如上面的{{item.message}}

3.2 index.wxss檔案的實現
該檔案是index的樣式設定,通過類名來設定相關view的高度等。

/**index.wxss**/
.messageList{
  display: flex;
  background: #ffffff;
  flex-direction: column;
}
.item{
  display: flex;
  flex-direction: row;
  margin: 15rpx;
  justify-content: space-between;
}
.item-left{
  display: flex;
  flex-direction: row;
}
.image{
  width: 128rpx;
  height: 128rpx;
  display: table-cell;
}
.mark{
  position:relative;
  width:30rpx;
  height:30rpx;
  border-radius: 50%;
  background-color: red;
  color: #ffffff;
  text-align: center;
  left:-20rpx;
  font-size: 10rpx; 
  display:table-cell;
  padding-left: 2rpx;
}
.text{
  color: #ffffff;
  font-size: 14rpx;
  text-align: center
}

.item-middle{
   flex: 1;
   margin-left: 20rpx;
   display: flex;
   flex-direction: column;
   top: 10rpx;
}
.title{
  overflow: hidden;
  color: black;
  font-size: 20rpx;
  font-family:"微軟雅黑";
  /*font-weight:bold;*/
  text-overflow: ellipsis;/*文字隱藏後新增省略號*/
}
.message{
  color: #aaa;
  font-size: 14rpx;
  overflow: hidden;
}

3.3 index.js檔案實現
這個檔案是為index.wxml檔案設定資料的。

//index.js
//獲取應用例項
var app = getApp()
Page({
  data: {
    messages:[
      {   url:"http://img1.3lian.com/gif/more/11/201212/0d1252b54be4f2d240b6b7fe4ed35054.jpg",
        title:"商脈",
        message:'好的',
        num:2,
        time:'11:15',
        remove:false,
        flag:'/images/wechat.png'
      },
       {
        url:"http://img1.3lian.com/gif/more/11/201212/0d1252b54be4f2d240b6b7fe4ed35054.jpg",
        title:"甲乙",
        message:'好的',
        num:1,
        time:'11:08',
        remove:false,
        flag:'/images/wechat.png'
      }
    ]
  },
  //事件處理函式
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad: function () {
    console.log('onLoad')
    var that = this
    //呼叫應用例項的方法獲取全域性資料
    app.getUserInfo(function(userInfo){
      //更新資料
      that.setData({
        userInfo:userInfo
      })
    })
  }
})

其中messages就是資料的集合了,在上面的index.wxml檔案中就用到這裡的的資料了。

4、其它三個頁面的實現

其它三個頁面的實現步驟和第一個頁面 的實現方式是一樣的,關鍵是調整頁面的佈局,如讓文字垂直居中等。這裡就不貼出來了,具體可以參考程式碼。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

5、專案匯入方式

這裡寫圖片描述

總結

剛開始使用微信的工具,算是個入門的小測試吧。