class Search {
page = 1;
totalPage = 0;
keyword = "";
totalArr = [];
constructor() {
util.header(
``,
`
搜索
`,
``
)
this.getSearchHotData()
this.event()
}
async getSearchHotData() {
let { hotKeyword, recommend } = await searchServe.searchHot()
$(".search_list ul").innerHTML = hotKeyword.maps(v => {
return `
${v}
`
});
item(".search_recommend", recommend, 2)
$(".search_recommend ul li").forEach(v => {
v.onclick = () => {
// 把你点击的文字放到搜索框里面
$(".header input").value = v.innerText
$(".header .button").onclick()
}
})
}
event() {
let input = $(".header input")
$(".header .button").onclick = async () => {
if (input.value.length != 0) {
this.keyword = input.value
this.totalArr = []
await this.getSearchKeyData()
if (this.totalArr.length != 0) {
util.hidden(".no-search")
item(".have-search ul", this.totalArr)
util.show(".have-search")
this.onscroll()
}
}
}
input.oninput = () => {
if (input.value.length == 0) {
util.show(".no-search")
util.hidden(".have-search")
}
}
}
// 用来发送搜索请求的
async getSearchKeyData() {
let { totalPage, list } = await searchServe.searchKey({
keyword: this.keyword,
page: this.page
})
this.totalPage = totalPage
list.forEach(v => this.totalArr.push(v));
}
// 滚动到底部实现自动加载下一页数据
onscroll() {
window.onscroll = async () => {
var scrollHeight = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
var clientHeight = window.innerHeight || Math.min(document.documentElement.clientHeight, document.body.clientHeight);
if (clientHeight + Math.ceil(scrollTop) >= scrollHeight) {
this.page += 1
if (this.page <= this.totalPage) {
await this.getSearchKeyData()
item(".have-search ul", this.totalArr)
}
}
}
}
}
new Search