mirror of
https://github.com/bartvdbraak/SlayerWeightCalculator.git
synced 2025-06-29 15:59:11 +00:00
responsive nav + hamburger menu
This commit is contained in:
parent
e7fb7c26f5
commit
7eed638ac0
7 changed files with 273 additions and 151 deletions
|
@ -1,5 +1,5 @@
|
|||
<template >
|
||||
<nav class="col-md-2 d-none d-md-block bg-light sidebar" @click="activate">
|
||||
<nav class="col-md-2 d-md-block bg-light sidebar" @click="activate">
|
||||
<div class="sidebar-sticky">
|
||||
<ul class="nav flex-column mb-2">
|
||||
<NavItem v-for="link in links" :isActive="activate(link.id)" :key="link.id" :title="link.title" :id="link.id" :icon_url="link.icon" :to="link.to"/>
|
||||
|
@ -68,6 +68,7 @@ export default {
|
|||
z-index: 100; /* Behind the navbar */
|
||||
padding: 48px 0 0; /* Height of navbar */
|
||||
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.sidebar-sticky {
|
||||
|
|
|
@ -20,7 +20,7 @@ export default {
|
|||
|
||||
<style scoped>
|
||||
[role="main"] {
|
||||
padding-top: 133px; /* Space for fixed navbar */
|
||||
padding-top: 48px; /* Space for fixed navbar */
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
|
|
|
@ -14,13 +14,14 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<b-table striped hover :items="filtered_items" :fields="fields"></b-table>
|
||||
<b-table striped hover :items="monstersData" :fields="fields"></b-table>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import master_json from "../data/masters";
|
||||
import monster_json from "../data/monsters";
|
||||
|
||||
export default {
|
||||
name: "TableSection",
|
||||
|
@ -28,43 +29,31 @@ export default {
|
|||
return {
|
||||
mastersData: master_json,
|
||||
currentMaster: null,
|
||||
monstersData: monster_json,
|
||||
total_weight: 0,
|
||||
fields: [
|
||||
{
|
||||
key: 'last_name',
|
||||
sortable: true
|
||||
key: 'monster',
|
||||
label: 'Monster name',
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
key: 'first_name',
|
||||
sortable: true
|
||||
},
|
||||
],
|
||||
total_weight: 100,
|
||||
items: [
|
||||
{ age_requirement: 40, first_name: 'Dickerson', last_name: 'Macdonald', combat_requirement: 10 },
|
||||
{ age_requirement: 21, first_name: 'Larsen', last_name: 'Shaw', combat_requirement: 0 },
|
||||
{ age_requirement: 89, first_name: 'Geneva', last_name: 'Wilson', combat_requirement: 50 },
|
||||
{ age_requirement: 38, first_name: 'Jami', last_name: 'Carney', combat_requirement: 0 }
|
||||
],
|
||||
filters: {
|
||||
age: 35,
|
||||
combat_level: 49,
|
||||
slayer_level: 75,
|
||||
},
|
||||
filtered_items: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
reload() {
|
||||
this.currentMaster = this.mastersData.masters[this.$route.params.id]
|
||||
this.currentMaster = this.mastersData.masters[this.$route.params.id];
|
||||
this.filterData();
|
||||
},
|
||||
filterData() {
|
||||
// this.filtered_items = this.items.filter(item => item.last_name.includes('Carney'));
|
||||
this.filtered_items = this.monstersData.filter(item => item.combat_req < this.filters.combat_level);
|
||||
|
||||
this.filtered_items = this.items.filter(item => item.combat_requirement < this.filters.combat_level);
|
||||
|
||||
},
|
||||
getMasterById(jsonObject, id) {
|
||||
return jsonObject.filter(item => item.id === id)[0];
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
<template>
|
||||
<nav class="navbar navbar-dark fixed-top bg-dark flex-md-nowrap p-0 shadow " role="navigation" aria-label="main navigation">
|
||||
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="/">Slayer Weight Calculator</a>
|
||||
|
||||
<small class="text-white-50 font-italic">A calculator for slayer geeks that need to know percentages.</small>
|
||||
<nav class="navbar navbar-dark fixed-top bg-dark px-2 py-0 shadow" role="navigation" aria-label="main navigation">
|
||||
|
||||
<ul class="navbar-nav px-3 menu-icon">
|
||||
<li class="nav-item text-nowrap">
|
||||
<a class="nav-link" @click="emitMenu">
|
||||
<svg height="32px" id="Layer_1" style="enable-background:new 0 0 32 32;" version="1.1" viewBox="0 0 32 32" width="32px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="currentColor" d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"/></svg> </a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="d-inline-block text-monospace text-white">Slayer Weight Calculator</div>
|
||||
<ul class="navbar-nav px-3">
|
||||
<li class="nav-item text-nowrap">
|
||||
<a class="nav-link" href="https://github.com/bartvdbraak/slayweightcalc">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" class="m-1" viewBox="0 0 512 499.36" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="28" class="m-1" viewBox="0 0 512 499.36" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"></path></svg>
|
||||
Github
|
||||
</a>
|
||||
</li>
|
||||
|
@ -17,22 +21,30 @@
|
|||
|
||||
<script>
|
||||
export default {
|
||||
name: "Navbar"
|
||||
name: "Navbar",
|
||||
methods: {
|
||||
emitMenu() {
|
||||
console.log('test')
|
||||
this.$emit('clicked');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.navbar-brand {
|
||||
padding-top: .75rem;
|
||||
padding-bottom: .75rem;
|
||||
font-size: 1rem;
|
||||
background-color: rgba(0, 0, 0, .25);
|
||||
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
|
||||
}
|
||||
|
||||
.navbar {
|
||||
padding: .75rem 1rem;
|
||||
border-width: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.menu-icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.menu-icon {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue