微信小程序自定义搜索框(searchbar)
微信小程序自定义搜索框(searchbar)样式截图展示:功能描述:微信小程序页面需要加入搜索框时,可以直接引用到页面中使用,当用户未输入任何关键字时如第一张图所示,当用户输入要搜索的关键字时如第二张图所示,出现取消文案和清空的icon标识,点击取消文案或者清空的icon标识,都可清空关键字,样式恢复到第一张图所示实现代码:(1) searchbar.jsComponent({properties
·
微信小程序自定义搜索框(searchbar)
样式截图展示:
功能描述:微信小程序页面需要加入搜索框时,可以直接引用到页面中使用,当用户未输入任何关键字时如第一张图所示,当用户输入要搜索的关键字时如第二张图所示,出现取消文案和清空的icon标识,点击取消文案或者清空的icon标识,都可清空关键字,样式恢复到第一张图所示
实现代码:
(1) searchbar.js
Component({
properties: {
placeholder: {
type: String,
value: '',
}
},
data: {
inputValue: ''
},
methods: {
// 用户输入触发
handleInput: function(e) {
this.setData({
inputValue: e.detail.value
})
},
// 点击清空输入框icon
handleDeleteClick: function() {
this.setData({
inputValue: ''
})
},
// 点击取消触发
handleTextbtnClick() {
// 触发父组件中的方法
this.setData({
inputValue: ''
})
},
// 用户点击确定触发
handleConfirm() {
this.triggerEvent('handleSearch', this.data.inputValue)
}
}
})
(2) searchbar.json
{
"component": true
}
(3) searchbar.wxml
<view class="searchbar">
<view class="content">
<image src="../../assets/images/search.png" class="search-icon"></image>
<input
bindinput="handleInput"
bindconfirm="handleConfirm"
type="text"
value="{{inputValue}}"
placeholder="{{placeholder}}"
class="input"
confirm-type="search"
></input>
<image
wx:if="{{inputValue}}"
bindtap="handleDeleteClick"
src="../../assets/images/delete-circle.png"
class="delete-icon"
></image>
</view>
<view wx:if="{{inputValue}}" bindtap="handleTextbtnClick" class="text-btn">取消</view>
</view>
(4) searchbar.wxss
.searchbar {
height: 88rpx;
padding: 20rpx 30rpx;
display: flex;
}
.content {
height: 88rpx;
padding: 0 18rpx;
background: rgba(255,255,255,1);
border-radius: 16rpx;
border: 2rpx solid rgba(220,222,226,1);
flex: 1;
display: flex;
align-items: center;
}
.search-icon {
width: 34rpx;
height: 34rpx;
margin-bottom: -4rpx;
}
.input {
flex: 1;
margin: 0 20rpx;
}
.delete-icon {
width: 40rpx;
height: 40rpx;
}
.text-btn {
margin-left: 24rpx;
height: 88rpx;
line-height: 88rpx;
font-size: 32rpx;
font-family: PingFangSC;
font-weight: 400;
color: rgba(21,96,220,1);
}
使用方法:(假如在index的页面中使用searchbar组件)
(1)在index.json文件中引入搜索组件searchbar
{
"usingComponents": {
"searchbar": "../../components/searchbar/searchbar"
}
}
(2) 在index.wxml文件中
<searchbar
placeholder="请输入关键字"
bind:handleSearch="handleSearch"
></searchbar>
总结: 以上就是自定义searchbar组件的实现及使用方法,如果样式或者用户的交互有不同,可以直接在代码中做扩展。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)