marc-leopold/components/GalleryThumbs.vue

116 lines
1.9 KiB
Vue
Raw Normal View History

<template>
2019-01-04 13:55:30 +00:00
<div>
<div class="gallery-thumbs__spacer"></div>
<ul class="gallery-thumbs__list">
<li v-for="(gallery, index) in galleries"
:key="index">
<ul class="gallery-thumbs__row">
2019-01-04 13:55:30 +00:00
<li class="featured-image mobile-only"
:style="{ 'height': featuredHeight }">
</li>
<li v-for="image in gallery.images"
class="thumb-container"
:key="image.url">
<span>{{ image.thumbUrl }}</span>
</li>
</ul>
</li>
</ul>
</div>
</template>
<script>
export default {
components: {
},
props: {
galleries: {
type: Array,
required: true
2019-01-04 13:55:30 +00:00
},
featuredHeight: {
type: String,
required: true
}
},
data () {
return {
}
},
methods: {
2019-01-04 15:23:13 +00:00
slideRight(index) {
console.log('slideRight: ', index)
}
}
}
</script>
<style lang="scss" scoped>
.gallery-thumbs__row {
display: flex;
flex-direction: row;
list-style: none;
padding: 0;
margin: 0;
}
@media (max-width: $bp__layout) {
.gallery-thumbs__spacer {
display:none;
}
.gallery-thumbs__row {
position: relative;
}
.gallery-thumbs__slider {
position: absolute;
2019-01-04 13:55:30 +00:00
width: 10rem;
height: 10rem;
bottom: 1rem;
left: 100vw;
transform: translateX( calc(-2rem - 100%));
}
.featured-image {
2019-01-04 13:55:30 +00:00
height: 50vh !important; // must override inline style set with prop
width: 100vw;
flex: 0 0 100vw;
}
.thumb-container {
height: 50vh;
}
}
@media (min-width: $bp__layout) {
$thumbs-height: 8rem;
.mobile-only {
display: none;
}
.featured-image {
width: 100%;
}
.thumb-container {
height: $thumbs-height;
}
2019-01-04 13:55:30 +00:00
.gallery-thumbs__list {
height: $thumbs-height;
overflow: hidden;
}
2019-01-04 13:55:30 +00:00
.gallery-thumbs__row {
flex: 0 0 $thumbs-height;
}
}
</style>