小程序地址,点击这里git
首先说下右边按钮的处理,功能是在搜索框有字的时候显示搜索而且变成红色按钮,在搜索框没有文字的时候显示取消变成灰色按钮,搜索时候点击进入商品列表页面,点击取消按钮的时候返回到京东首页。github
<input placeholder="搜索京东商品" type="text" bindinput="keyinput"/> <icon type="search" size="16" color="#afafb1"></icon> <button size="mini" id="{{searchContent?'搜索':'取消'}}" bindtap="search" class="{{searchContent?'btn-search':''}}">{{searchContent?'搜索':'取消'}}</button>
同时使用小程序的模板语法动态的设置按钮的id、类名和按钮中的文字,而且给按钮绑定了一个search的方法,这个方法主要处理跳转和搜索。web
if(event.target.id === '搜索'){ this.setData({ searchContent:undefined }) wx.redirectTo({ url:"../goodsList/goodsList" }) }else if(event.target.id === '取消'){ this.setData({ searchContent:undefined }) wx.navigateBack({ delta: 2 }) }
搜索页还有清空和换一批的功能,很简单暂时就不处理了,接下来看商品列表页的处理小程序
<input placeholder="搜索京东商品" value="{{searchKey}}" type="text" bindinput="keyinput"/> data:{ searchKey:'笔记本电脑' } this.setData({ searchKey:app.globalData.searchKeyword })
<view wx:for="{{filterData}}" data-id="{{index}}" bindtap="select" class="{{select == index ?'filter-select':''}}"> <text>{{item}}</text> </view> select:function(event){ this.setData({ select:event.currentTarget.dataset.id }) }
下面是个列表显示商品,布局很少讲,这里就是布局以后,使用wx:for把获取到的数据显示在下面就能够了,有一个平时不是很经常使用的效果多行文字隐藏给出代码以下:服务器
width: 200px; word-break: break-all; text-overflow: ellipsis; display: -webkit-box; /** 对象做为伸缩盒子模型显示 **/ -webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/ -webkit-line-clamp: 3; /** 显示的行数 **/ overflow: hidden; /** 隐藏超出的内容 **/