美食菜譜類小程序非常受到微信小程序開發(fā)的歡迎,因為小程序的用完即走,輕便無需下載,隨時可以在小程序中搜索不知道的菜譜,比如下廚房也開發(fā)了對于的美食菜譜小程序,那么關于美食菜譜了類小程序要如何設計開發(fā),首先我們先講講美食菜譜小程序中最重要的搜索組件。
為組件設置一個容器,在容器中放置搜索圖標、輸入框、清除文字按鈕和搜索按鈕。
<view class='container'> <view class='input-wrapper'> <image class='search-icon' src="http://www.fluoresville.cn/'/img/search.png'></image> <input placeholder='{{placeholder}}' value='{{inputValue}}' bindinput='handleInput' bindconfirm='handleSearch' bindfocus='inputFocused'> </input> <view class='close-icon-wrapper' wx:if="{{showCloseIcon}}" bindtap='clearValue'> <image class='close-icon' src="http://www.fluoresville.cn/img/close.png' ></image> </view> <text bindtap='onTap'>搜索</text> </view> </view>
container:高度 100 rpx,背景色 #eee,flex 布局。
input-wrapper:高度 80 rpx,背景色 #fff,flex 布局,border-radius: 20rpx。
search-icon:寬高 32 rpx。
input:字體和光標顏色 #000,字體大小 32 rpx。
close-icon-wrapper:寬高 80 rpx,絕對定位。
text:搜索按鈕寬 110 rpx,高 65 rpx,絕對定位,左邊框 2rpx solid #eee。
.container { background: #eee; height: 100rpx; width: 100%; display: flex; justify-content: center; align-items: center; } .input-wrapper { display: flex; align-items: center; height: 80rpx; width: 80%; background: #fff; border-radius: 20rpx; } .input-wrapper .search-icon { margin-left: 20rpx; width: 32rpx; height: 32rpx; } .input-wrapper input { margin-left: 10rpx; color: #000; font-size: 32rpx; caret-color: #000; width: 60%; } .input-wrapper .close-icon-wrapper{ position: absolute; left: 480rpx; width: 80rpx; height: 80rpx; background:#fff; display: flex; justify-content: center; align-items: center; } .input-wrapper .close-icon { width: 42rpx; height: 42rpx; } .input-wrapper text { position: absolute; right: 80rpx; width: 110rpx; height: 65rpx; padding: 0; background: #fff; display: flex; justify-content: center; align-items: center; font-size: 32rpx; border-left: 2rpx solid #eee; }
組件的構(gòu)造器中要注意區(qū)分 properties 和 data,properties 中寫組件的對外屬性,data 寫組件的對內(nèi)屬性。在本搜索組件中 placeholder 和 value 從頁面?zhèn)鱽恚运鼈儗懺?properties 中,控制清除按鈕是否出現(xiàn)的 showCloseIcon 要寫在 data 中。
properties: { placeholder: { type: String, value: '搜索' // 如果頁面不傳placeholder,顯示“搜索” }, inputValue: { type: String } }, data: { showCloseIcon: false, },
(1)光標不聚焦,沒有任何輸入——顯示搜索圖標、placeholder和搜索按鈕。
(2)光標聚焦,沒有任何輸入——光標閃爍,顯示搜索圖標、placeholder和搜索按鈕。
(3)光標聚焦,有輸入——光標閃爍,顯示搜索圖標、輸入文字、清除按鈕和搜索按鈕。
(4)光標不聚焦,有輸入——顯示搜索圖標、輸入文字、清除按鈕和搜索按鈕。
(5)按回車搜索——清除按鈕隱藏。
(6)點擊搜索按鈕——清除按鈕隱藏。
由此可見,需要 input 組件的聚焦和鍵盤輸入事件。
<input placeholder='{{placeholder}}' value='{{inputValue}}' bindinput='handleInput' bindconfirm='handleSearch' bindfocus='inputFocused'> </input>
inputFocused:如果聚焦時,輸入框中有內(nèi)容,顯示 closeIcon;
handleInput:如果輸入時沒有內(nèi)容,不顯示 closeIcon,有內(nèi)容,顯示 closeIcon 并把值存入 value。
handleSearch:點擊回車后,不顯示 closeIcon。
triggerEvent:自定義組件觸發(fā)事件時,需要使用 triggerEvent 方法,指定事件名、detail對象和事件選項。
inputFocused(e) { if (e.detail.value !== '') { this.setData({ showCloseIcon: true, }); } }, handleInput(e) { if (e.detail.value == '') { this.setData({ showCloseIcon: false, }); } else { this.setData({ showCloseIcon: true, }); this.triggerEvent('handleInput', { value: e.detail.value }); } }, handleSearch() { // 點擊鍵盤上的回車,調(diào)用此方法 this.setData({ showCloseIcon: false, }); console.log('handleSearch', this.data.inputValue); },
<view class='close-icon-wrapper' wx:if="{{showCloseIcon}}" bindtap='clearValue'> <image class='close-icon' src="http://www.fluoresville.cn/img/close.png' ></image> </view> <text bindtap='onTap'>搜索</text>
分別為 closeIcon 和 搜索按鈕添加點擊事件。
clearValue() { this.triggerEvent('handleInput', { value: '' }); this.setData({ showCloseIcon: false, }); }, onTap() { this.setData({ showCloseIcon: false, }); console.log('onTap', this.data.inputValue); },
{ "component":true }
工程的名字是 cookbook,這里組件前綴統(tǒng)一為 ck。
{ "usingComponents":{ "ck-input":"/components/search/index" } }
<view class='container'> <ck-input placeholder='搜你想吃的' inputValue="{{inputValue}}" bind:handleInput="handleInput"> </ck-input> </view>
handleInput(e) { this.setData({ inputValue: e.detail.value, }); },
以上就是美食菜譜類微信小程序的設計與開發(fā)之搜索組件,美食餐飲類目前已經(jīng)成為了小程序開發(fā)中的熱門行業(yè),如果你也需要這樣的一個小程序,可以與我們咨詢。
小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。更多小程序商店請查看:小程序商店
KESION 科汛軟件
KESION 科汛軟件是國內(nèi)領先的在線教育軟件及私域社交電商軟件服務提供商,長期專注于為企業(yè)提供在線教育軟件及社交電商SaaS平臺解決方案。
公司核心產(chǎn)品云開店SaaS社交電商服務平臺、在線教育SaaS服務平臺、教育企業(yè)數(shù)字化SaaS云平臺、企微營銷助手、私有化獨立部署品牌網(wǎng)校和在線教育咨詢等。KESION 不斷通過技術創(chuàng)新,提供產(chǎn)品和服務,助力企業(yè)向數(shù)字化轉(zhuǎn)型,通過科技驅(qū)動商業(yè)革新,讓商業(yè)變得更智慧!
微信小程序發(fā)展至今,已經(jīng)有不少行業(yè)的加入,很多加入小程序的商家們也從中獲取了很大的利潤,對于一些還未加入小程序行列的商家們,就十分納悶為什么要做小程序,那么下面小編為大家...
vue和微信小程序,在微信小程序開發(fā)中,兩者有許多相同之處,也有一些區(qū)別,下面就為大家總結(jié)一下vue和微信小程序的區(qū)別、比較。...