1. 程式人生 > >微信小程式開發(五)-類似於tab切換

微信小程式開發(五)-類似於tab切換

效果圖和微信小程式圖吧公交中的一樣,只是樣式不一樣罷了,感興趣的可以用自己的手機檢視。
效果圖如下:
這是搜尋框,主要目的用於搜尋

這是搜尋到的資料,進行渲染

這是渲染路線的詳情頁,線路查詢和返回路線可以左右切換,下面對應的渲染資料即可

還是和之前一樣,主要分為三個模組,結構、樣式、行為。
結構程式碼如下:

<!--pages/route/route.wxml-->
<!--請輸入公交路線模組-->
<block wx:if = "{{isSearch}}">
  <view class="route_search_box center"
>
<view class="search_box text_center"> <text class="text_search center">search</text> <input class="text_input center" bindinput="searchInputEvent" type="text" placeholder="請輸入公交線路"/> <text class="text_back center">back</text> </view> </view
>
</block> <!--請輸入公交路線內容-顯示模組--> <block wx:if = "
{{isList}}"> <view class="search_content_box center"> <view class="content_list"> <view class="content_item align_center" bindtap="itemEvent" wx:for="{{searchArray}}" wx:key="unique" data-index="{{index}}">
{{index}}:{{item.name}} </view> </view> </view> </block> <!--當點選搜尋到的公交線路時,跳轉到顯示公交路線模組--> <block wx:if="{{isDetail}}"> <view class="route_show_box"> <view class="route_show_content center"> <view class="route_name align_center"> {{itemData}}:{{itemData}} </view> </view> <view class="route_time center"> <text class="text_time align_center">運營時間</text> </view> <view class="route_detail_box center"> <view class="route_detail"> <view class="detail_left center" style="background:{{back1}};" bindtap="routeFindEvent">線路查詢</view> <view class="detail_right center" style="background:{{back2}};" bindtap="routeBackEvent">返回路線</view> </view> </view> </view> </block>

樣式程式碼如下:

/* pages/route/route.wxss */
/*搜尋框模組*/
.route_search_box{
  width: 100%;
  height: 120rpx;
}
.search_box{
  width: 90%;
  height: 80rpx;
  border-radius: 20rpx;
  border: 2rpx solid #ccc;
}
.text_search{
  background: #9f9;
}
.text_input{
  height: 80rpx;
}
.text_back{
  background: #9f9;
}
/*搜尋框搜尋內容模組*/
.search_content_box{
  width: 100%;
  height: auto;
  background: #f99;
}
.content_list{
  width: 90%;
  height: auto;
}
.content_item{
  width: 100%;
  height: 60rpx;
  margin: 10rpx 0;
  background: #9ff;
}
/*路線詳情頁面*/
.route_show_box{
  width: 100%;
  height: auto;
}
.route_show_content{
  width: 100%;
  height: 60rpx;
}
.route_name{
  width: 90%;
  height: 60rpx;
  border-bottom: 2rpx solid #ccc;
}
.route_time{
  width: 100%;
  height: 80rpx;
  background: #f4f4f4;
  border-bottom: 2rpx solid #ccc;
}
.text_time{
  width: 90%;
  height: 100%;
}
.route_detail_box{
  width: 100%;
  height: 80rpx;
}
.route_detail{
  width: 90%;
  height: 40rpx;
  display: flex;
  border: 5rpx solid #9f9;
  border-radius: 20rpx;
}
.detail_left{
  flex: 1;
  height: 40rpx;
  border-radius: 20rpx 0 0 20rpx;
}
.detail_right{
  flex: 1;
  height: 40rpx;
  border-radius: 0 20rpx 20rpx 0;
}

行為程式碼:

// pages/route/route.js
Page({
  data:{
    isSearch: true,
    isList: false,
    isDetail: false,
    itemData: "",
    back1: "red",
    back2: "",
    searchArray: []
  },
  onLoad:function(options){
    // 頁面初始化 options為頁面跳轉所帶來的引數
  },
  onReady:function(){
    // 頁面渲染完成
  },
  onShow:function(){
    // 頁面顯示
  },
  onHide:function(){
    // 頁面隱藏
  },
  onUnload:function(){
    // 頁面關閉
  },
  /**
   *  函式名:searchEvent
   *  功能:擋在請輸入路線輸入框中輸入內容時,觸發此事件
   */
  searchInputEvent: function(e){
    //console.log("searchEvent");
    var data = e.detail.value;
    var _this = this;
    this.setData({
      isList: true
    })
    wx.request({
      //非真實介面
      url: 'http://w.mmmm.com/search2016/search/wods',
      data:{
        keywords: data,
        city: 110000
      },
      method: "GET",
      success: function(res){
        //console.log("res",res);
        _this.setData({
          searchArray: res.data.pois
        })
      },
      fail: function(){
        console.log("請求失敗!");
      }
    })
  },
  /**
   *  函式名:itemEvent
   *  功能:當在搜尋框中輸入內容時,顯示搜尋到的內容模組
   */
  itemEvent: function(e){
    //console.log(e);
    let i = e.target.dataset.index;
    let searchItemData = this.data.searchArray;
    //console.log(searchItemData);
    let itemData = searchItemData[i].name;
    //console.log(itemData);
    //console.log(i);
    this.setData({
      isSearch: false,
      isList: false,
      isDetail: true,
      itemData: itemData
    })
  },
  /**
   *  函式名:routeFindEvent
   *  功能: 實現點選切換
   */
  routeFindEvent: function(){
    console.log("aa");
    this.setData({
      back1: "red",
      back2: ""
    })
  },
  /**
   *  函式名:routeBackEvent
   *  功能:實現點選切換
   */
  routeBackEvent: function () {
    this.setData({
      back1: "",
      back2: "red"
    })
  }
})

相關推薦

程式開發-類似tab切換

效果圖和微信小程式圖吧公交中的一樣,只是樣式不一樣罷了,感興趣的可以用自己的手機檢視。 效果圖如下: 這是搜尋框,主要目的用於搜尋 這是搜尋到的資料,進行渲染 這是渲染路線的詳情頁,線路

從零開始學程式開發

從我學習開發小程式到現在,已經有好幾款上線了。雖然都是一些益智類的小程式,不難,但是也從裡面學到了一些知識。 1.準備工作 首先需要去官網註冊一個小程式的帳號。註冊好賬號以後,就可以設定補充小程式的資訊

程式開發- 顯示 loading 提示框

首先看一張圖片,就是要做成的效果。 當我們點選查詢時,就會有一個請選擇地點的彈出框。 這個狀態我們只能去看微信開發文件了。 這個在API-介面-互動反饋-wx.hideLoading() 這

程式開發——使用sshstruts2+hibernate+spring框架實現後臺與前臺進行通訊

使用ssh框架實現對微信小程式前臺的通訊,做到前後臺分離,後臺頁面都為靜態頁面,通過用json來現實與前臺通訊(面向介面程式設計)。在這次因為只為了實現通訊所以沒有用hibernate。只用了struts2+spring,也是ssh框架中struts和spring整合。實現了

程式開發2---APP()函式

App({ onLaunch: function(options) { // Do something initial when launch. }, onShow: function(options) { // Do something when show. }, onHide: function() {

程式開發

快速學習的能力是碼農的核心競爭力 話說這幾天突然被微信小程式刷屏了,趁著還在內測階段,趕緊先把技能學到手吧。好在之前有過開發前端工程的經驗,這樣的話上起手來應該不會太難吧,呵呵。(手動傲嬌臉) 工欲善其事必先有其器 開發者工具安裝完成後,開啟並使用微信

程式開發

POST請求的坑 使用wx.request向伺服器提交資料時遇到的坑 1、header wx.request 預設的是使用GET方法,content-type為application/json,但是對於普通的POST方法向伺服器提交資料,我們需要修改hea

程式開發圖片上傳+服務端接收

上次介紹了小程式開發中的微信登入。文章: 微信小程式開發(一) 微信登入流程, 這次介紹下小程式當中常用的圖片上傳。 前幾天做了圖片上傳功能,被坑了一下。接下來我們來看一下微信的上傳api。 這裡的filePath就是圖片的儲存路徑,型別居然是個

程式開發技術篇

技術篇,有些是我自己學的,有些是我們公司的全棧大神教的,還有些就是各種百度的。 會持續更新,每天寫一點。 -----------------------------------------------

程式開發--資料儲存

二. 同步儲存 (1)wx.setStorageSync(KEY,DATA) 將 data 儲存在本地快取中指定的 key 中,會覆蓋掉原來該 key 對應的內容,這是一個同步介面。 wx.setStorageSync('key', 'val

程式開發

上傳照片到快取 這裡實現上傳本地照片/拍攝照片並上傳顯示到當前頁面的功能,主要對JS檔案分析 STEP1實現選擇本地相簿/拍攝功能 wxml內繫結choosWay函式: <image class="upload-picture" wx:if

程式開發入坑之旅一:域名問題。

3、按照步驟來,經歷了註冊開發者->申請小程式開發->填寫小程式資訊->獲取小程式ID和祕鑰->下載開發者工具->新建專案。 tips:注意:按照教程建立新專案後,

程式-01筆記

微信小程式和Vue有點相似。 首先下載開發工具,直接去官網找工具就可以了  然後安裝使用就可以了 點選選擇小程式,來到這裡 點選測試號小程式 ,會自動生成AppID。然後建立專案就可以了 介面就是這樣、可以選擇各種機型以及屬於你的糞×。點選編譯或者直接

程式支付thinkphp

之前一直想學下微信支付,這次終於有機會來操作一下,還是記錄下來,跟大家分享分享。 一、首先,我們要在微信官方網站上去下載支付介面,然後改個名方便呼叫(例如:WeiXinpay),然後將下載的檔案放入thinkphp的Vendor檔案下面; 二、然後去官網下載商戶操作證書:https://pa

程式——操作

首先,你需要從官網上https://mp.weixin.qq.com/cgi-bin/wx下載“微信web開發者工具”,如下圖 雙擊開啟 設定專案路徑,AppId或者點選小程式,入門就建立快速啟動模版,確定開啟。 開啟程式後,我們先認識一下目錄:如圖所示, pages資料夾放的是你每

程式 筆記

navigateTo, redirectTo 只能開啟非 tabBar 頁面。 switchTab 只能開啟 tabBar 頁面。 reLaunch 可以開啟任意頁面。 頁面底部的 tabBar 由頁面決定,即只要是定義為 tabB

程式learning - 1簡易教程

官方連結:https://developers.weixin.qq.com/miniprogram/dev/ 學習微信小程式,重點標記,只做記錄,自行看官方文件       全域性配置 小程式根目錄下的 app.json 檔案用來對微信

程式學習18 —— 上拉載入和下拉重新整理

在微信小程式上實現下拉重新整理、上拉載入的效果 使用系統提供的onPullDownRefresh、onReachBottom這2個事件, 前提需要在app.json或page.json配置檔案中設定,才能使用。 app.json是全應用的頁面都可以使用該事件

程式新聞文章釋出系統前後臺完整程式碼

1:建表 。分類表,新聞表 2:後臺。新增新聞,管理新聞。 3:小程式介面。列表頁,詳情頁。 4:後臺介面 5:小程式程式碼 //////////////////////////////////////////////

公眾號開發-- 獲取使用者位置

獲取jssdk 連結 裡面有寫 獲得使用者地理位置許可權 <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script> wx.config({