Using scroll component for release banner, adding expand button.
This commit is contained in:
parent
8f9eb91b13
commit
b22fdd841b
|
@ -105,16 +105,11 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.photo {
|
.photo {
|
||||||
width: 10rem;
|
|
||||||
height: 15rem;
|
height: 15rem;
|
||||||
box-shadow: 0 0 3px $shadow-weak;
|
box-shadow: 0 0 3px $shadow-weak;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.expand {
|
|
||||||
border-bottom: solid 1px var(--darken-hint);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media(max-width: $breakpoint3) {
|
@media(max-width: $breakpoint3) {
|
||||||
.photos {
|
.photos {
|
||||||
&.empty.avatar {
|
&.empty.avatar {
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div class="banner">
|
||||||
class="banner"
|
|
||||||
@wheel.prevent="scrollBanner"
|
|
||||||
>
|
|
||||||
<div class="trailer">
|
<div class="trailer">
|
||||||
<video
|
<video
|
||||||
v-if="release.trailer"
|
v-if="release.trailer"
|
||||||
|
@ -110,10 +107,6 @@ function photos() {
|
||||||
return this.release.photos;
|
return this.release.photos;
|
||||||
}
|
}
|
||||||
|
|
||||||
function scrollBanner(event) {
|
|
||||||
event.currentTarget.scrollLeft += event.deltaY; // eslint-disable-line no-param-reassign
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
release: {
|
release: {
|
||||||
|
@ -131,9 +124,6 @@ export default {
|
||||||
photos,
|
photos,
|
||||||
sfw,
|
sfw,
|
||||||
},
|
},
|
||||||
methods: {
|
|
||||||
scrollBanner,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -141,14 +131,20 @@ export default {
|
||||||
@import 'theme';
|
@import 'theme';
|
||||||
|
|
||||||
.banner {
|
.banner {
|
||||||
background: var(--empty);
|
background: var(--background-dim);
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
scrollbar-width: none;
|
scrollbar-width: none;
|
||||||
box-shadow: 0 0 3px var(--shadow);
|
scroll-behavior: smooth;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
|
|
||||||
|
&.expanded {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
@ -187,6 +183,8 @@ export default {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
margin: .5rem;
|
||||||
|
box-shadow: 0 0 3px var(--shadow-weak);
|
||||||
|
|
||||||
.warning {
|
.warning {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
v-if="release"
|
v-if="release"
|
||||||
class="content"
|
class="content"
|
||||||
>
|
>
|
||||||
<Banner :release="release" />
|
|
||||||
|
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<a
|
<a
|
||||||
|
@ -94,9 +92,21 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<Scroll class="scroll-light">
|
||||||
|
<Banner :release="release" />
|
||||||
|
|
||||||
|
<template v-slot:expanded>
|
||||||
|
<Banner
|
||||||
|
:release="release"
|
||||||
|
class="expanded"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</Scroll>
|
||||||
|
|
||||||
<div class="info column">
|
<div class="info column">
|
||||||
<h2 class="row title">{{ release.title }}</h2>
|
<h2 class="row title">{{ release.title }}</h2>
|
||||||
|
|
||||||
|
<span class="row-label">Actors</span>
|
||||||
<div class="row associations">
|
<div class="row associations">
|
||||||
<ul
|
<ul
|
||||||
v-lazy-container="{ selector: '.lazy' }"
|
v-lazy-container="{ selector: '.lazy' }"
|
||||||
|
@ -129,12 +139,12 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<span class="row-label">Tags</span>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="release.tags.length > 0"
|
v-if="release.tags.length > 0"
|
||||||
class="row"
|
class="row"
|
||||||
>
|
>
|
||||||
<Icon icon="price-tags3" />
|
|
||||||
|
|
||||||
<ul class="tags nolist">
|
<ul class="tags nolist">
|
||||||
<li
|
<li
|
||||||
v-for="tag in release.tags"
|
v-for="tag in release.tags"
|
||||||
|
@ -163,11 +173,12 @@
|
||||||
<span class="duration-segment">{{ (release.duration % 60).toString().padStart(2, '0') }}</span>
|
<span class="duration-segment">{{ (release.duration % 60).toString().padStart(2, '0') }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<span class="row-label">Description</span>
|
||||||
|
|
||||||
<p
|
<p
|
||||||
v-if="release.description"
|
v-if="release.description"
|
||||||
class="row description"
|
class="row description"
|
||||||
>
|
>
|
||||||
<Icon icon="info2" />
|
|
||||||
{{ release.description }}
|
{{ release.description }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -201,9 +212,8 @@
|
||||||
>{{ release.shootId }}</a>
|
>{{ release.shootId }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<span class="row-label">Added</span>
|
||||||
<span class="row">
|
<span class="row">
|
||||||
<Icon icon="drawer-in" />
|
|
||||||
|
|
||||||
<a
|
<a
|
||||||
:href="`/added/${formatDate(release.dateAdded, 'YYYY-MM-DD')}`"
|
:href="`/added/${formatDate(release.dateAdded, 'YYYY-MM-DD')}`"
|
||||||
:title="`Added on ${formatDate(release.dateAdded, 'MMMM D, YYYY')}`"
|
:title="`Added on ${formatDate(release.dateAdded, 'MMMM D, YYYY')}`"
|
||||||
|
@ -224,6 +234,7 @@ import Banner from './banner.vue';
|
||||||
import Actor from '../tile/actor.vue';
|
import Actor from '../tile/actor.vue';
|
||||||
import Release from '../tile/release.vue';
|
import Release from '../tile/release.vue';
|
||||||
import Releases from './releases.vue';
|
import Releases from './releases.vue';
|
||||||
|
import Scroll from '../scroll/scroll.vue';
|
||||||
|
|
||||||
function pageTitle() {
|
function pageTitle() {
|
||||||
return this.release && this.release.title;
|
return this.release && this.release.title;
|
||||||
|
@ -248,6 +259,7 @@ export default {
|
||||||
Banner,
|
Banner,
|
||||||
Release,
|
Release,
|
||||||
Releases,
|
Releases,
|
||||||
|
Scroll,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -296,6 +308,18 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.row-label {
|
||||||
|
display: block;
|
||||||
|
margin: 0 0 .5rem 0;
|
||||||
|
color: var(--shadow);
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
margin: 0 .5rem 0 0;
|
||||||
|
fill: var(--shadow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.details {
|
.details {
|
||||||
background: var(--profile);
|
background: var(--profile);
|
||||||
color: var(--text-light);
|
color: var(--text-light);
|
||||||
|
@ -397,9 +421,6 @@ export default {
|
||||||
margin: 0 1rem .5rem 0;
|
margin: 0 1rem .5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.movies {
|
|
||||||
}
|
|
||||||
|
|
||||||
.filename {
|
.filename {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: .5rem;
|
padding: .5rem;
|
||||||
|
|
|
@ -78,7 +78,7 @@ function mounted() {
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('resize', this.updateScroll);
|
window.addEventListener('resize', this.updateScroll);
|
||||||
this.updateScroll();
|
setTimeout(() => this.updateScroll(), 500); // allow CSS to calculate
|
||||||
}
|
}
|
||||||
|
|
||||||
function beforeDestroy() {
|
function beforeDestroy() {
|
||||||
|
@ -135,6 +135,10 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.expand-light {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.scroll-light {
|
.scroll-light {
|
||||||
background: var(--background-dim);
|
background: var(--background-dim);
|
||||||
|
|
||||||
|
@ -164,6 +168,10 @@ export default {
|
||||||
.expand-dark {
|
.expand-dark {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.expand-light {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-dark {
|
.scroll-dark {
|
||||||
|
@ -195,6 +203,10 @@ export default {
|
||||||
.expand-light {
|
.expand-light {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.expand-dark {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-button {
|
.scroll-button {
|
||||||
|
@ -205,6 +217,7 @@ export default {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
&.scroll-start,
|
&.scroll-start,
|
||||||
&.scroll-end {
|
&.scroll-end {
|
||||||
|
|
Loading…
Reference in New Issue