hjyd的手机端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

188 lines
4.2 KiB

<template>
<div
:class="
istop && isFirstSwiper ? 'top_container' : 'top_container container_bg'
"
>
<img
class="logo"
:src="istop && isFirstSwiper ? Logo : isHard ? Logo2 : Logo1"
alt=""
/>
<img
class="fold_icon"
:src="istop && isFirstSwiper ? Icon : Icon1"
alt=""
v-if="!drawer"
@click="openDrawer"
/>
</div>
<div class="modal_drawer" v-if="drawer" @click="hidePanel">
<img :src="Close" class="close" alt="" @click="drawer = false" />
<div class="content" id="content_tab">
<div class="icon_wrap">
<p class="icon"></p>
</div>
<div class="btn_wrap">
<div class="btn" @click="toPage('/company')">公司简介</div>
<div class="btn" @click="toPage('/case-show')">案例展示</div>
<div class="btn" @click="toPage('/contact')">联系我们</div>
<div class="btn" @click="toPage('/recruit')">招贤纳士</div>
<div class="btn" @click="toPage(`${isHard ? '/' : '/hardware'}`)">
{{ isHard ? '工业设计' : '软硬件研发' }}
</div>
<!-- <div class="btn" @click="toPage('/product')">产品研发</div> -->
</div>
</div>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import Close from '@/static/img/banner/x.png'
import Logo from '@/static/img/banner/logo.png'
import Logo2 from '@/static/img/banner/logo3.png'
import Icon from '@/static/img/banner/liebiao.png'
import Icon1 from '@/static/img/banner/liebiao2.png'
import Logo1 from '@/static/img/banner/logo2.png'
import { useRouter, useRoute } from 'vue-router'
const route = useRoute()
const router = useRouter()
const drawer = ref(false)
const props = defineProps({
isFirstSwiper: {
type: Boolean,
},
})
const openDrawer = () => {
drawer.value = true
}
const toPage = path => {
router.push(path)
}
const hidePanel = event => {
let dom = document.getElementById('content_tab')
if (dom) {
if (!dom.contains(event.target)) {
//这句是说如果我们点击到了id为child以外的区域
drawer.value = false
}
}
}
const isHard = ref(false)
onMounted(() => {
window.addEventListener('scroll', scrollToTop)
if (route.path.indexOf('/hardware') != -1) {
isHard.value = true
}
})
const istop = ref(true)
const scrollToTop = () => {
var scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop
if (scrollTop == 0) {
istop.value = true
} else {
istop.value = false
}
}
</script>
<style lang="scss" scoped>
.top_container {
padding: 14px 18px;
width: 100vw;
overflow: hidden;
display: flex;
align-items: center;
justify-content: space-between;
position: fixed;
top: 0;
right: 0;
width: 100%;
box-sizing: border-box;
.logo {
width: 85px;
height: 17px;
}
.fold_icon {
width: 18px;
height: 12px;
}
}
.modal_drawer {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100vh;
z-index: 999;
background: rgba(0, 0, 0, 0.67);
.close {
position: absolute;
right: 20px;
width: 13px;
height: 13px;
top: 17px;
}
.content {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 348px;
background: #fff;
z-index: 999;
border-top-right-radius: 20px;
border-top-left-radius: 20px;
display: flex;
flex-direction: column;
.icon_wrap {
display: flex;
align-items: center;
justify-content: center;
padding: 12px 0 0 0;
.icon {
width: 24px;
height: 2px;
border-radius: 1px;
background: #000;
}
}
.btn_wrap {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
.btn {
font-size: 13px;
font-family: Alibaba PuHuiTi;
font-weight: 400;
color: #000000;
width: 100%;
flex: 1;
display: flex;
align-items: center;
justify-content: center;
}
}
}
}
.container_bg {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(30px);
transition-property: all;
transition-duration: 0.7s;
animation-fill-mode: forwards;
}
</style>