marc-leopold/components/GalleryPage.vue

136 lines
2.3 KiB
Vue
Raw Normal View History

2019-01-03 21:11:23 +00:00
<template>
<div class="gallery-page">
<GalleryImageViewer class="image-viewer"
:is-visible="imageViewerIsVisible"
@close="imageViewerIsVisible = false" />
2019-01-04 13:55:30 +00:00
<div class="gallery">
<GalleryFeatured class="gallery__featured"
:featured-height="featuredImageHeight"
:galleries="galleries" />
<GalleryThumbs class="gallery__thumbs"
:featured-height="featuredImageHeight"
:galleries="galleries" />
2019-01-03 21:11:23 +00:00
</div>
</div>
</template>
<script>
import GalleryFeatured from '@/components/GalleryFeatured'
import GalleryThumbs from '@/components/GalleryThumbs'
import GalleryImageViewer from '@/components/GalleryImageViewer'
2019-01-03 21:11:23 +00:00
export default {
components: {
GalleryFeatured,
GalleryThumbs,
2019-01-04 15:23:13 +00:00
GalleryImageViewer,
},
2019-01-03 21:11:23 +00:00
props: {
galleries: {
type: Array,
required: true
}
},
data () {
return {
2019-01-04 13:55:30 +00:00
featuredImageHeight: '16rem',
imageViewerIsVisible: false
2019-01-03 21:11:23 +00:00
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.gallery-page {
position: relative;
height: 100%;
width: 100%;
}
.image-viewer {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
2019-01-03 21:11:23 +00:00
@media (max-width: $bp__layout) {
.gallery-page {
padding-top: $site-menu__header-height;
}
2019-01-04 13:55:30 +00:00
.gallery {
2019-01-03 21:11:23 +00:00
position: relative;
height: 100%;
2019-01-04 09:24:38 +00:00
width: 100%;
2019-01-03 21:11:23 +00:00
overflow-x: hidden;
overflow-y: auto;
}
2019-01-04 13:55:30 +00:00
.gallery__thumbs {
position: absolute;
top: 0;
left: 0;
}
2019-01-04 16:18:45 +00:00
.gallery__featured {
width: 100vw;
}
.close-viewer {
font-size: 10em;
cursor: pointer;
}
}
2019-01-03 21:11:23 +00:00
@media (min-width: $bp__layout) {
.mobile-only {
display: none;
}
2019-01-04 09:24:38 +00:00
2019-01-03 21:11:23 +00:00
.gallery-page {
padding-left: $site-menu__header-width;
}
2019-01-04 13:55:30 +00:00
.gallery {
2019-01-04 09:56:46 +00:00
display: flex;
flex-direction: row;
2019-01-04 09:56:46 +00:00
justify-content: space-between;
2019-01-04 09:24:38 +00:00
position: relative;
height: 100%;
width: 100%;
overflow: hidden;
}
2019-01-04 13:55:30 +00:00
.gallery__featured {
order: 2;
flex: 0 0 20rem;
overflow-y: auto;
}
.gallery__thumbs {
order: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
overflow: hidden;
}
2019-01-04 15:23:13 +00:00
.gallery__nav {
display: none;
}
.close-viewer {
display: none;
}
2019-01-03 21:11:23 +00:00
}
2019-01-03 21:11:23 +00:00
</style>