Modified navigation on website
This commit is contained in:
parent
32445d7f25
commit
46eef08eb4
@ -1,20 +1,26 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div class="container" :class="{'container-menu-active': clicked}">
|
||||
<router-link to="/">
|
||||
<div class="logo">Kamil<span class="logo-element">Craft</span></div>
|
||||
</router-link>
|
||||
<nav class="nav">
|
||||
<button class="nav-btn" @click="clickMenu">
|
||||
<transition name="btn">
|
||||
<font-awesome-icon v-if="!clicked" icon="bars"></font-awesome-icon>
|
||||
<font-awesome-icon v-else icon="times"></font-awesome-icon>
|
||||
</transition>
|
||||
</button>
|
||||
<ul class="site-menu">
|
||||
<li class="menu-element">
|
||||
<li class="menu-element" @click="linkClicked">
|
||||
<router-link to="/">Start</router-link>
|
||||
</li>
|
||||
<li class="menu-element">
|
||||
<li class="menu-element" @click="linkClicked">
|
||||
<router-link to="/projects">Projekty</router-link>
|
||||
</li>
|
||||
<li class="menu-element">
|
||||
<li class="menu-element" @click="linkClicked">
|
||||
<router-link to="/about">O mnie</router-link>
|
||||
</li>
|
||||
<li class="menu-element">
|
||||
<li class="menu-element" @click="linkClicked">
|
||||
<router-link to="/contact">Kontakt</router-link>
|
||||
</li>
|
||||
</ul>
|
||||
@ -23,6 +29,12 @@
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.btn-enter-active, .btn-leave-active {
|
||||
transition: opacity .5s;
|
||||
}
|
||||
.btn-enter, .btn-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
.container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -40,9 +52,34 @@
|
||||
color: #A2CF00;
|
||||
}
|
||||
}
|
||||
|
||||
&-menu-active {
|
||||
background-color: #EFEFEF;
|
||||
color: #8D8D8D;
|
||||
|
||||
div.logo {
|
||||
background-color: #F6F6F6;
|
||||
}
|
||||
.nav {
|
||||
.nav-btn {
|
||||
color: #8D8D8D;
|
||||
}
|
||||
.site-menu .menu-element a {
|
||||
color: #8D8D8D;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.nav {
|
||||
margin-left: 20px;
|
||||
.nav-btn {
|
||||
display: none;
|
||||
margin: 10px 25px;
|
||||
font-size: 2em;
|
||||
color: white;
|
||||
background: transparent !important;
|
||||
border: none;
|
||||
}
|
||||
.site-menu {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
@ -63,6 +100,36 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 600px) {
|
||||
.nav-btn {
|
||||
display: block;
|
||||
}
|
||||
.site-menu {
|
||||
display: none;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
top: 80px;
|
||||
left: 0;
|
||||
background-color: white;
|
||||
box-shadow: 0px 10px 10px rgba(0, 0, 0, .1);
|
||||
|
||||
.menu-element {
|
||||
width: 100%;
|
||||
padding: 5px 20px;
|
||||
text-align: right;
|
||||
font-size: 1.8em;
|
||||
line-height: 2em;
|
||||
}
|
||||
}
|
||||
.menu-clicked {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 600px) {
|
||||
.container {
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -71,8 +138,34 @@ export default {
|
||||
name: 'SiteHeader',
|
||||
data () {
|
||||
return {
|
||||
clicked: false,
|
||||
publicPath: process.env.BASE_URL
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeClickedStatus () {
|
||||
this.clicked = !this.clicked
|
||||
},
|
||||
addMenuClicked () {
|
||||
const siteMenu = document.querySelector('.site-menu')
|
||||
siteMenu.classList.add('menu-clicked')
|
||||
},
|
||||
removeMenuClicked () {
|
||||
const siteMenu = document.querySelector('.site-menu')
|
||||
siteMenu.classList.remove('menu-clicked')
|
||||
},
|
||||
clickMenu () {
|
||||
!this.clicked ? this.addMenuClicked() : this.removeMenuClicked()
|
||||
this.changeClickedStatus()
|
||||
},
|
||||
linkClicked () {
|
||||
/* safari has problem with variables */
|
||||
var siteMenu = document.querySelector('.site-menu')
|
||||
if (siteMenu.classList.contains('menu-clicked')) {
|
||||
this.removeMenuClicked()
|
||||
this.changeClickedStatus()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user