95 lines
2.6 KiB
JavaScript
95 lines
2.6 KiB
JavaScript
|
|
// 每一个页面都应该有一个init方法
|
|
// 用来做初始化
|
|
let infoData = {}
|
|
let likeData = JSON.parse(localStorage.getItem("like")) || []
|
|
const init = async () => {
|
|
header(
|
|
`<div class="flex ai-c">
|
|
<i class="iconfont icon-wujiaoxing "></i>
|
|
<i class="iconfont icon-fenxiang"></i>
|
|
</div>`,
|
|
)
|
|
getInfoList()
|
|
bindEvent()
|
|
}
|
|
|
|
const getInfoList = async () => {
|
|
infoData = await infoList({ id: query("id") })
|
|
$(".header_title").innerText = infoData.title
|
|
|
|
item(".recommend-model ul", infoData.recommend)
|
|
|
|
innerMaps(
|
|
".info .img_arr",
|
|
infoData.src_list,
|
|
(v, i) => `<a href="${v}" class="js-smartPhoto" data-id="${i}">
|
|
<img data-src="${v}" class="lazyload" data-sizes="auto" alt="">
|
|
</a>`
|
|
)
|
|
|
|
|
|
|
|
_(".img_arr img").click(v => {
|
|
new SmartPhoto(".js-smartPhoto", {
|
|
resizeStyle: 'fit'
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
const bindEvent = () => {
|
|
_(".all").click(v => {
|
|
$(".info").classList.replace("hidden", "show")
|
|
})
|
|
|
|
|
|
_(".icon-fenxiang").click(async v => {
|
|
await navigator.clipboard.writeText(stripIndents`
|
|
我发现一个好看的,快来看看: 《${infoData.title}》
|
|
${location.href}
|
|
`);
|
|
alert("已粘贴,快分享给朋友吧")
|
|
})
|
|
|
|
|
|
// 在这判断 写真是否收藏
|
|
// foreach map filter
|
|
// 如果写真已经被收藏在本地,那么将图标改为收藏状态(实心)
|
|
likeData.filter(v => v.id == query("id") ? v : null).length != 0
|
|
? $(".icon-wujiaoxing").classList.add("icon-wujiaoxing1")
|
|
: null
|
|
|
|
|
|
_(".icon-wujiaoxing").click(async v => {
|
|
// $(".icon-wujiaoxing").classList.toggle("icon-wujiaoxing1")
|
|
|
|
// 取消收藏
|
|
if ($(".icon-wujiaoxing").classList.contains("icon-wujiaoxing1")) {
|
|
$(".icon-wujiaoxing").classList.remove("icon-wujiaoxing1")
|
|
likeData = likeData.filter((v,i) => {
|
|
if (v.id != query("id")) {
|
|
return v
|
|
}
|
|
})
|
|
|
|
localStorage.setItem("like", JSON.stringify(likeData))
|
|
|
|
// 收藏
|
|
} else {
|
|
likeData.push({
|
|
id: query("id"),
|
|
title: infoData.title,
|
|
thumbnail: infoData.src_list[0],
|
|
time: query("time"),
|
|
view: query("view")
|
|
})
|
|
|
|
localStorage.setItem("like", JSON.stringify(likeData))
|
|
$(".icon-wujiaoxing").classList.add("icon-wujiaoxing1")
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
init() |