feat: 优化页面布局和交互体验

- 使用sticky定位替代fixed定位,提升滚动体验
- 添加视频播放图标和图片展示功能
- 实现搜索框热门关键词轮播效果
- 优化编辑器链接插入功能
- 调整组件样式和布局细节
This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-11-10 19:06:58 +08:00
parent b7feedb350
commit 5cdbeb249f
26 changed files with 517 additions and 373 deletions

View File

@@ -4,42 +4,22 @@
</a>
<div class="flex1"></div>
<div class="input-box flexacenter" :class="{'pitch': searchInputState}">
<input class="input flex1" type="text" :placeholder="'大家都在搜:' + defaultSearchText" @keyup.enter="searchEvent()" v-model="input" @focus="searchInputFocus" @blur="searchInputBlur" />
<img class="icon" src="/img/search-icon.svg" @click="searchEvent()" />
<div v-if="!searchInputState" class="placeholder-box" :style="{transform: 'translateY(-' + currentIndex * 36 + 'px)', transition: 'transform .3s ease'}">
<div class="item one-line-display" v-for="(item,index) in hotSearchWords" :key="index">大家都在搜:{{ item.keyword }}</div>
<div class="item one-line-display" v-for="(item,index) in hotSearchWords.slice(0, 2)" :key="'copy-' + index">大家都在搜:{{ item.keyword }}</div>
</div>
<input class="input flex1" type="text" @keyup.enter="searchEvent()" v-model="input" @focus="searchInputFocus" @blur="searchInputBlur" /> <img class="icon" src="/img/search-icon.svg" @click="searchEvent()" />
<div class="search-box-history" v-if="searchHistoryShowState">
<div class="search-box-history-title">历史搜索</div>
<div class="search-box-history-list">
<div class="search-box-history-item one-line-display" v-for="(item,index) in historySearchList " :key="index" @click="searchEvent(item)">{{ item }}</div>
</div>
</div>
</div>
</div>
<div class="post-list flexacenter" v-if="page == 'details'">
<a href="/publish" target="_blank" style="margin-right: 10px">
<img class="post-item" src="/img/post-thread.png" />
</a>
<a href="https://offer.gter.net/post" target="_blank" style="margin-right: 10px">
<img class="post-item" src="/img/post-offer.png" />
</a>
<a href="https://offer.gter.net/post/summary" target="_blank" style="margin-right: 10px">
<img class="post-item" src="/img/post-summary.png" />
</a>
<a href="https://interviewexperience.gter.net/publish" target="_blank" style="margin-right: 10px">
<img class="post-item" src="/img/post-mj.png" />
</a>
<a href="https://vote.gter.net/publish" target="_blank" style="margin-right: 10px">
<img class="post-item" src="/img/post-vote.png" />
</a>
</div>
<template v-else>
<div class="sign-in sign-in-no flexacenter" v-if="state == 0" @click="signIn()" v-cloak>
<img class="sign-in-bj" src="/img/sign-in-bj.svg" />
<img class="coin-bj" src="/img/coin-bj.svg" />
<img class="coin-icon" src="/img/coin-icon.png" />
<span class="text flex1">签到领寄托币</span>
<div class="post-list flexacenter" v-if="page == 'details'"> <a href="/publish" target="_blank" style="margin-right: 10px"> <img class="post-item" src="/img/post-thread.png" /> </a> <a href="https://offer.gter.net/post" target="_blank" style="margin-right: 10px"> <img class="post-item" src="/img/post-offer.png" /> </a> <a href="https://offer.gter.net/post/summary" target="_blank" style="margin-right: 10px"> <img class="post-item" src="/img/post-summary.png" /> </a> <a href="https://interviewexperience.gter.net/publish" target="_blank" style="margin-right: 10px"> <img class="post-item" src="/img/post-mj.png" /> </a> <a href="https://vote.gter.net/publish" target="_blank" style="margin-right: 10px"> <img class="post-item" src="/img/post-vote.png" /> </a> </div> <template v-else>
<div class="sign-in sign-in-no flexacenter" v-if="state == 0" @click="signIn()" v-cloak> <img class="sign-in-bj" src="/img/sign-in-bj.svg" /> <img class="coin-bj" src="/img/coin-bj.svg" /> <img class="coin-icon" src="/img/coin-icon.png" /> <span class="text flex1">签到领寄托币</span>
<div class="sign-go flexcenter">
<img class="sign-go-bj" src="/img/sign-go.svg" />
GO
<img class="sign-go-bj" src="/img/sign-go.svg" /> GO
</div>
<img class="petal1" src="/img/petal1.png" />
<img class="petal2" src="/img/petal2.png" />
@@ -50,4 +30,4 @@
<span>已签到,明天再来</span>
</div>
</template>
</div>
</div>