這篇文章帶給大家的內容是關於微信小程式搜尋分頁功能實現,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
這裡以搜尋歌曲為例:
##前端:
<view class="search"> <view class="search-bar"> <view class="search-wrap"> <icon type="search" size="16" class="icon-search" /> <input type="text" placeholder="请输入搜索内容" class="search-input" name="searchKeyword" bindinput="bindKeywordInput" value="{{searchKeyword}}" /> </view> <view class="search-cancel" bindtap="keywordSearch">搜索</view> </view> <view class="search-result"> <scroll-view scroll-y="true" bindscrolltolower="searchScrollLower"> <view class="result-item" wx:for="{{searchSongList}}" wx:key="unique" data-data="{{item}}" > <view class="icon{{item.isonly=='0' ? ' nocopyright' : ''}}"></view> <text class="title">{{item.SongName}}--{{item.SingerName}}</text> <view class="subtitle"> <text>{{item.SingerName}}</text> </view> </view> <view class="loading" hidden="{{!searchLoading}}">正在载入更多...</view> <view class="loading complete" hidden="{{!searchLoadingComplete}}">已加载全部</view> </scroll-view> </view> </view>
樣式:
page{ display: flex; flex-direction: column; height: 100%; } /*搜索*/ .search{ flex: auto; display: flex; flex-direction: column; background: #fff; } .search-bar{ flex: none; display: flex; align-items: center; justify-content: space-between; padding: 20rpx; background: #f4f4f4; } .search-wrap{ position: relative; flex: auto; display: flex; align-items: center; height: 80rpx; padding: 0 20rpx; background: #fff; border-radius: 6rpx; } .search-wrap .icon-search{ margin-right: 10rpx; } .search-wrap .search-input{ flex: auto; font-size: 28rpx; } .search-cancel{ padding: 0 20rpx; font-size: 28rpx; } /*搜索结果*/ .search-result{ flex: auto; position: relative; } .search-result scroll-view{ position: absolute; bottom: 0; left: 0; right: 0; top: 0; } .result-item{ position: relative; display: flex; flex-direction: column; padding: 20rpx 0 20rpx 110rpx; overflow: hidden; border-bottom: 2rpx solid #e5e5e5; } .result-item .media{ position: absolute; left: 16rpx; top: 16rpx; width: 80rpx; height: 80rpx; border-radius: 999rpx; } .result-item .title, .result-item .subtitle{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 36rpx; } .result-item .title{ margin-bottom: 4rpx; color: #000; } .result-item .subtitle{ color: #808080; font-size: 24rpx; } .result-item:first-child .subtitle text{ margin-right: 20rpx; } .result-item:not(:first-child) .subtitle text:not(:first-child):before{ content: '/'; margin: 0 8rpx; } .loading{ padding: 10rpx; text-align: center; } .loading:before{ display: inline-block; margin-right: 5rpx; vertical-align: middle; content: ''; width: 40rpx; height: 40rpx; /* background: url(../../images/icon-loading.png) no-repeat; */ background-size: contain; animation: rotate 1s linear infinite; } .loading.complete:before{ display: none; }