marc-leopold/components/GalleryPage.vue

172 lines
2.8 KiB
Vue
Raw Normal View History

2019-01-03 21:11:23 +00:00
<template>
<div class="gallery-page">
2019-01-04 09:24:38 +00:00
<div class="gallery-container">
2019-01-04 09:56:46 +00:00
<div class="featured-images">
<div class="featured-images__spacer"></div>
<ul class="featured-images__list">
<li v-for="(gallery, index) in galleries"
class="featured-image image-container"
:key="index">
<span>{{ gallery.title }}</span>
</li>
</ul>
</div>
2019-01-03 21:11:23 +00:00
<ul class="gallery-thumbs">
<li v-for="(gallery, index) in galleries"
:key="index">
<ul class="gallery-thumbs__row">
2019-01-04 09:24:38 +00:00
<li class="featured-image featured-image--mobile-only"></li>
2019-01-03 21:11:23 +00:00
<li v-for="image in gallery.images"
class="image-container"
:key="image.url">
<span>{{ image.thumbUrl }}</span>
</li>
</ul>
</li>
</ul>
2019-01-04 09:24:38 +00:00
<div class="image-viewer"></div>
2019-01-03 21:11:23 +00:00
</div>
</div>
</template>
<script>
export default {
props: {
galleries: {
type: Array,
required: true
}
},
data () {
return {
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.gallery-page {
position: relative;
height: 100%;
width: 100%;
}
.gallery-thumbs__row {
display: flex;
flex-direction: row;
list-style: none;
padding: 0;
margin: 0;
}
@media (max-width: $bp__layout) {
.gallery-page {
padding-top: $site-menu__header-height;
}
2019-01-04 09:24:38 +00:00
.gallery-container {
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;
}
.featured-images {
width: 100vw;
}
2019-01-04 09:56:46 +00:00
.featured-images__spacer {
display: none;
}
2019-01-03 21:11:23 +00:00
.gallery-thumbs {
position: absolute;
top: 0;
left: 0;
}
.gallery-thumbs__row {
}
2019-01-04 09:24:38 +00:00
.featured-image {
2019-01-03 21:11:23 +00:00
height: 50vh;
width: 100vw;
flex: 0 0 100vw;
}
.image-container {
height: 50vh;
}
2019-01-04 09:24:38 +00:00
2019-01-03 21:11:23 +00:00
}
@media (min-width: $bp__layout) {
2019-01-04 09:24:38 +00:00
$thumbs-height: 8rem;
2019-01-03 21:11:23 +00:00
.gallery-page {
padding-left: $site-menu__header-width;
}
2019-01-04 09:24:38 +00:00
.gallery-container {
2019-01-04 09:56:46 +00:00
display: flex;
flex-direction: column;
justify-content: space-between;
2019-01-04 09:24:38 +00:00
position: relative;
height: 100%;
width: 100%;
overflow: hidden;
}
.featured-images {
2019-01-04 09:56:46 +00:00
display: flex;
flex-direction: row;
justify-content: space-between;
overflow-y: auto;
}
.featured-images__list {
}
.featured-images__spacer {
pointer-events: none;
}
.featured-image {
width: 10rem;
height: 10rem;
}
.image-viewer {
2019-01-04 09:24:38 +00:00
position: absolute;
top: 0;
2019-01-04 09:56:46 +00:00
left: 0;
2019-01-04 09:24:38 +00:00
}
.gallery-thumbs {
2019-01-04 09:56:46 +00:00
flex: 0 0 $thumbs-height;
2019-01-04 09:24:38 +00:00
overflow: hidden;
overflow: auto; // TEMP
}
2019-01-03 21:11:23 +00:00
2019-01-04 09:24:38 +00:00
.gallery-thumbs__row {
height: $thumbs-height;
}
.featured-image {
&--mobile-only {
display: none;
}
}
2019-01-03 21:11:23 +00:00
}
</style>