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.
|
|
<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>
|