fix home icon

This commit is contained in:
yuanshan 2025-08-22 14:18:13 +08:00
parent cab2491b2b
commit c6a1188488
6 changed files with 15912 additions and 87 deletions

15822
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -6,7 +6,7 @@
> >
<div class="header-container"> <div class="header-container">
<div class="logo" @click="handleToHome"> <div class="logo" @click="handleToHome">
<NImage width="160" height="50" :src="FiEELogo" preview-disabled /> <NImage width="80" height="80" :src="FiEELogo" preview-disabled />
</div> </div>
<div class="header-menu"> <div class="header-menu">
<NMenu <NMenu
@ -22,61 +22,61 @@
</template> </template>
<script setup> <script setup>
import FiEELogo from '@/assets/image/header/logo.png' import FiEELogo from "@/assets/image/header/logo.png";
import { ref, onMounted, onUnmounted } from 'vue' import { ref, onMounted, onUnmounted } from "vue";
import { NMenu, NLayoutHeader, NImage } from 'naive-ui' import { NMenu, NLayoutHeader, NImage } from "naive-ui";
import { useI18n } from 'vue-i18n' import { useI18n } from "vue-i18n";
import { useRouter } from 'vue-router' import { useRouter } from "vue-router";
import { useHeaderMenuConfig } from '@/config/headerMenuConfig' import { useHeaderMenuConfig } from "@/config/headerMenuConfig";
const { t } = useI18n() const { t } = useI18n();
const router = useRouter() const router = useRouter();
// 使 // 使
const menuOptions = useHeaderMenuConfig() const menuOptions = useHeaderMenuConfig();
const selectedKey = ref(null) const selectedKey = ref(null);
const isScrolled = ref(false) const isScrolled = ref(false);
// //
function findMenuOptionByKey(options, key) { function findMenuOptionByKey(options, key) {
for (const option of options) { for (const option of options) {
if (option.key === key) return option if (option.key === key) return option;
if (option.children) { if (option.children) {
const found = findMenuOptionByKey(option.children, key) const found = findMenuOptionByKey(option.children, key);
if (found) return found if (found) return found;
} }
} }
return null return null;
} }
// //
const handleMenuSelect = (key) => { const handleMenuSelect = (key) => {
const option = findMenuOptionByKey(menuOptions, key) const option = findMenuOptionByKey(menuOptions, key);
if (option && option.href) { if (option && option.href) {
router.push(option.href) router.push(option.href);
}
} }
};
// //
const handleScroll = () => { const handleScroll = () => {
//100pxheader //100pxheader
isScrolled.value = window.scrollY >= 100 isScrolled.value = window.scrollY >= 100;
} };
onMounted(() => { onMounted(() => {
window.addEventListener('scroll', handleScroll) window.addEventListener("scroll", handleScroll);
}) });
onUnmounted(() => { onUnmounted(() => {
window.removeEventListener('scroll', handleScroll) window.removeEventListener("scroll", handleScroll);
}) });
// //
const handleToHome = () => { const handleToHome = () => {
router.push('/myhome') router.push("/myhome");
selectedKey.value = null // selectedKey.value = null; //
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -108,7 +108,7 @@ const handleToHome = () => {
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
transition: transform 0.3s ease; transition: transform 0.3s ease;
margin-right: 100px; margin-left: 100px;
&:hover { &:hover {
transform: scale(1.05); transform: scale(1.05);
@ -139,7 +139,7 @@ const handleToHome = () => {
text-align: center; text-align: center;
&::after { &::after {
content: ''; content: "";
position: absolute; position: absolute;
bottom: 0; bottom: 0;
left: 50%; left: 50%;
@ -185,7 +185,7 @@ const handleToHome = () => {
overflow: hidden; overflow: hidden;
&::before { &::before {
content: ''; content: "";
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;

View File

@ -6,7 +6,7 @@
> >
<div class="header-container"> <div class="header-container">
<div class="logo" @click="handleToHome"> <div class="logo" @click="handleToHome">
<NImage width="160" height="50" :src="FiEELogo" preview-disabled /> <NImage width="80" height="80" :src="FiEELogo" preview-disabled />
</div> </div>
<div class="header-menu"> <div class="header-menu">
<NMenu <NMenu
@ -22,61 +22,61 @@
</template> </template>
<script setup> <script setup>
import FiEELogo from '@/assets/image/header/logo.png' import FiEELogo from "@/assets/image/header/logo.png";
import { ref, onMounted, onUnmounted } from 'vue' import { ref, onMounted, onUnmounted } from "vue";
import { NMenu, NLayoutHeader, NImage } from 'naive-ui' import { NMenu, NLayoutHeader, NImage } from "naive-ui";
import { useI18n } from 'vue-i18n' import { useI18n } from "vue-i18n";
import { useRouter } from 'vue-router' import { useRouter } from "vue-router";
import { useHeaderMenuConfig } from '@/config/headerMenuConfig' import { useHeaderMenuConfig } from "@/config/headerMenuConfig";
const { t } = useI18n() const { t } = useI18n();
const router = useRouter() const router = useRouter();
// 使 // 使
const menuOptions = useHeaderMenuConfig() const menuOptions = useHeaderMenuConfig();
const selectedKey = ref(null) const selectedKey = ref(null);
const isScrolled = ref(false) const isScrolled = ref(false);
// //
function findMenuOptionByKey(options, key) { function findMenuOptionByKey(options, key) {
for (const option of options) { for (const option of options) {
if (option.key === key) return option if (option.key === key) return option;
if (option.children) { if (option.children) {
const found = findMenuOptionByKey(option.children, key) const found = findMenuOptionByKey(option.children, key);
if (found) return found if (found) return found;
} }
} }
return null return null;
} }
// //
const handleMenuSelect = (key) => { const handleMenuSelect = (key) => {
const option = findMenuOptionByKey(menuOptions, key) const option = findMenuOptionByKey(menuOptions, key);
if (option && option.href) { if (option && option.href) {
router.push(option.href) router.push(option.href);
}
} }
};
// //
const handleScroll = () => { const handleScroll = () => {
//100pxheader //100pxheader
isScrolled.value = window.scrollY >= 100 isScrolled.value = window.scrollY >= 100;
} };
onMounted(() => { onMounted(() => {
window.addEventListener('scroll', handleScroll) window.addEventListener("scroll", handleScroll);
}) });
onUnmounted(() => { onUnmounted(() => {
window.removeEventListener('scroll', handleScroll) window.removeEventListener("scroll", handleScroll);
}) });
// //
const handleToHome = () => { const handleToHome = () => {
router.push('/myhome') router.push("/myhome");
selectedKey.value = null // selectedKey.value = null; //
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -108,7 +108,7 @@ const handleToHome = () => {
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
transition: transform 0.3s ease; transition: transform 0.3s ease;
margin-right: 100px; margin-left: 100px;
&:hover { &:hover {
transform: scale(1.05); transform: scale(1.05);
@ -139,7 +139,7 @@ const handleToHome = () => {
text-align: center; text-align: center;
&::after { &::after {
content: ''; content: "";
position: absolute; position: absolute;
bottom: 0; bottom: 0;
left: 50%; left: 50%;
@ -185,7 +185,7 @@ const handleToHome = () => {
overflow: hidden; overflow: hidden;
&::before { &::before {
content: ''; content: "";
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;

View File

@ -7,12 +7,16 @@
<div class="header-container"> <div class="header-container">
<div class="logo" @click="handleToHome"> <div class="logo" @click="handleToHome">
<NImage <NImage
style="width: 108px; height: 33px; max-width: 100%" style="width: 60px; height: 60px; max-width: 100%"
:src="FiEELogo" :src="FiEELogo"
preview-disabled preview-disabled
/> />
</div> </div>
<div class="menu-btn" :class="{ 'menu-open': showMenu }" @click="toggleMenu"> <div
class="menu-btn"
:class="{ 'menu-open': showMenu }"
@click="toggleMenu"
>
<n-icon size="28" class="menu-icon menu-icon-menu"> <n-icon size="28" class="menu-icon menu-icon-menu">
<menu-sharp /> <menu-sharp />
</n-icon> </n-icon>
@ -38,20 +42,20 @@
</template> </template>
<script setup> <script setup>
import FiEELogo from '@/assets/image/header/logo.png' import FiEELogo from "@/assets/image/header/logo.png";
import { ref, onMounted, onUnmounted } from 'vue' import { ref, onMounted, onUnmounted } from "vue";
import { NMenu, NLayoutHeader, NImage, NIcon } from 'naive-ui' import { NMenu, NLayoutHeader, NImage, NIcon } from "naive-ui";
import { MenuSharp, CloseSharp } from '@vicons/ionicons5' import { MenuSharp, CloseSharp } from "@vicons/ionicons5";
import { useI18n } from 'vue-i18n' import { useI18n } from "vue-i18n";
import { useRouter } from 'vue-router' import { useRouter } from "vue-router";
import { useHeaderMenuConfig } from '@/config/headerMenuConfig' import { useHeaderMenuConfig } from "@/config/headerMenuConfig";
const { t } = useI18n() const { t } = useI18n();
const router = useRouter() const router = useRouter();
const isScrolled = ref(false) const isScrolled = ref(false);
const showMenu = ref(false) const showMenu = ref(false);
const selectedKey = ref(null) const selectedKey = ref(null);
const toggleMenu = () => { const toggleMenu = () => {
showMenu.value = !showMenu.value; showMenu.value = !showMenu.value;
@ -82,7 +86,7 @@ const handleMenuSelect = (key) => {
}; };
// 使 // 使
const menuOptions = useHeaderMenuConfig() const menuOptions = useHeaderMenuConfig();
// //
const handleScroll = () => { const handleScroll = () => {
@ -95,15 +99,15 @@ onMounted(() => {
}); });
onUnmounted(() => { onUnmounted(() => {
window.removeEventListener('scroll', handleScroll) window.removeEventListener("scroll", handleScroll);
}) });
// //
const handleToHome = () => { const handleToHome = () => {
router.push('/') router.push("/");
selectedKey.value = null // selectedKey.value = null; //
showMenu.value = false // showMenu.value = false; //
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -160,8 +164,7 @@ const handleToHome = () => {
top: 50%; top: 50%;
transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg);
opacity: 1; opacity: 1;
transition: transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none; pointer-events: none;
} }