Skip to content

Commit 2e2ede7

Browse files
committed
fix: optimize avatar loading display
1 parent 6e69738 commit 2e2ede7

File tree

2 files changed

+11
-21
lines changed

2 files changed

+11
-21
lines changed

apps/client/components/Home/index.vue

+6-15
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
<div class="mt-8 flex w-full justify-between">
33
<!-- 左侧头像区域 -->
44
<div class="mr-16 hidden w-72 md:block">
5-
<div class="mx-auto h-56 w-56 overflow-hidden">
5+
<div
6+
class="mx-auto h-56 w-56 overflow-hidden rounded-full border-2 border-gray-300 bg-gray-300 dark:border-gray-700 dark:bg-gray-700"
7+
>
8+
<!-- 通过给定高度来自适应拉伸图片,如果图片不存在或者加载失败则显示外层的背景色(没有宽度) -->
69
<img
7-
class="h-full w-full rounded-full border-2 border-gray-300 bg-gray-300 object-cover dark:border-gray-700 dark:bg-gray-700"
8-
:src="userStore.userInfo?.picture || DEFAULT_AVATAR"
9-
@error="onImageError"
10+
class="h-full object-cover"
11+
:src="userStore.userInfo?.picture!"
1012
/>
1113
</div>
1214
<div class="mt-4 truncate">
@@ -57,17 +59,6 @@ const userStore = useUserStore();
5759
const { learnRecord, setupLearnRecord, setQueryYear } = useLearnRecord();
5860
const { toggleYear } = useCalendarGraph();
5961
60-
// 默认 1x1 像素的透明 GIF 图片,用于消除头像图片加载失败时的白色边框
61-
const DEFAULT_AVATAR =
62-
"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
63-
64-
function onImageError(e: Event) {
65-
const target = e.target as HTMLImageElement;
66-
if (target) {
67-
target.src = DEFAULT_AVATAR;
68-
}
69-
}
70-
7162
function useCalendarGraph() {
7263
const data = ref<CalendarData[]>([]);
7364
const totalCount = ref<number>(0);

apps/client/components/Navbar.vue

+5-6
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,13 @@
5555
class="logged-in flex items-center"
5656
>
5757
<div
58-
class="btn btn-square btn-ghost drawer-button"
58+
class="h-8 w-8 cursor-pointer overflow-hidden rounded-full bg-gray-300 transition-all hover:scale-125 hover:opacity-90 dark:bg-gray-700"
5959
@click="handleShowUserMenu"
6060
>
61-
<div class="avatar">
62-
<div class="w-8 rounded-full">
63-
<img :src="userStore.userInfo?.picture!" />
64-
</div>
65-
</div>
61+
<img
62+
class="h-full object-cover"
63+
:src="userStore.userInfo?.picture!"
64+
/>
6665
</div>
6766
</div>
6867
<!-- 登录/注册 -->

0 commit comments

Comments
 (0)