summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortamaina <tamaina@hotmail.co.jp>2017-12-10 20:39:26 +0900
committertamaina <tamaina@hotmail.co.jp>2017-12-10 20:39:26 +0900
commite51bd95a8d5e7bd006ab2f3db67b9c3cc2cab7cf (patch)
tree91ac24c4dc93afbc6cc3c9b64e9fb50e3439637b /src
parentUpdate README.md (diff)
downloadsharkey-e51bd95a8d5e7bd006ab2f3db67b9c3cc2cab7cf.tar.gz
sharkey-e51bd95a8d5e7bd006ab2f3db67b9c3cc2cab7cf.tar.bz2
sharkey-e51bd95a8d5e7bd006ab2f3db67b9c3cc2cab7cf.zip
channel以外mk-images-viewer化・mk-images-viewer強化
Diffstat (limited to 'src')
-rw-r--r--src/web/app/desktop/tags/images-viewer.tag49
-rw-r--r--src/web/app/desktop/tags/post-detail-sub.tag6
-rw-r--r--src/web/app/desktop/tags/post-detail.tag7
3 files changed, 38 insertions, 24 deletions
diff --git a/src/web/app/desktop/tags/images-viewer.tag b/src/web/app/desktop/tags/images-viewer.tag
index 44a61cb747..3edd1300b2 100644
--- a/src/web/app/desktop/tags/images-viewer.tag
+++ b/src/web/app/desktop/tags/images-viewer.tag
@@ -1,32 +1,46 @@
<mk-images-viewer>
- <div class="image" ref="view" onmousemove={ mousemove } style={ 'background-image: url(' + image.url + '?thumbnail' } onclick={ click }><img src={ image.url + '?thumbnail&size=512' } alt={ image.name } title={ image.name }/></div>
+ <virtual each={ image in images }>
+ <mk-images-viewer-image ref="wrap" image={ image } images={ images }/>
+ </virtual>
<style>
:scope
- display block
+ display grid
overflow hidden
border-radius 4px
+ grid-gap .25em
- > .image
+ > div
cursor zoom-in
+ overflow hidden
+ background-position center
> img
- display block
- max-height 256px
- max-width 100%
- margin 0 auto
-
- &:hover
- > img
- visibility hidden
+ visibility hidden
+ max-width: 100%
+ max-height: 256px
&:not(:hover)
- background-image none !important
+ background-size cover
+ &:nth-child(1):nth-last-child(3)
+ grid-row 1 / 3
</style>
<script>
this.images = this.opts.images;
- this.image = this.images[0];
+ this.on('mount', () => {
+ if(this.images.length >= 3) this.refs.wrap.style.gridAutoRows = "9em";
+ if(this.images.length == 2) this.refs.wrap.style.gridAutoRows = "12em";
+ if(this.images.length == 1) this.refs.wrap.style.gridAutoRows = "256px";
+ if(this.images.length == 4 || this.images.length == 2) this.refs.wrap.style.gridTemplateColumns = "repeat(2, 1fr)";
+ if(this.images.length == 3) this.refs.wrap.style.gridTemplateColumns = "65% 1fr";
+ })
+ </script>
+</mk-images-viewer>
+
+<mk-images-viewer-image>
+ <div ref="view" onmousemove={ mousemove } onmouseleave={ mouseleave } style={ 'background-image: url(' + image.url + '?thumbnail?size=512' } onclick={ click }><img ref="image" src={ image.url + '?thumbnail&size=512' } alt={ image.name } title={ image.name }/></div>
+ <script>
this.mousemove = e => {
const rect = this.refs.view.getBoundingClientRect();
const mouseX = e.clientX - rect.left;
@@ -34,12 +48,19 @@
const xp = mouseX / this.refs.view.offsetWidth * 100;
const yp = mouseY / this.refs.view.offsetHeight * 100;
this.refs.view.style.backgroundPosition = xp + '% ' + yp + '%';
+ this.refs.view.style.backgroundImage = 'url("' + this.image.url + '?thumbnail")';
};
+ this.mouseleave = () => {
+ this.refs.view.style.backgroundPosition = "";
+ }
+
this.click = () => {
riot.mount(document.body.appendChild(document.createElement('mk-image-dialog')), {
image: this.image
});
};
+
+ this.image = this.opts.image;
</script>
-</mk-images-viewer>
+</mk-images-viewer-image> \ No newline at end of file
diff --git a/src/web/app/desktop/tags/post-detail-sub.tag b/src/web/app/desktop/tags/post-detail-sub.tag
index e22386df91..99899929d6 100644
--- a/src/web/app/desktop/tags/post-detail-sub.tag
+++ b/src/web/app/desktop/tags/post-detail-sub.tag
@@ -9,7 +9,7 @@
<span class="username">@{ post.user.username }</span>
</div>
<div class="right">
- <a class="time" href={ '/' + this.post.user.username + '/' + this.post.id }>
+ <a class="time" href={ '/' + post.user.username + '/' + post.id }>
<mk-time time={ post.created_at }/>
</a>
</div>
@@ -17,9 +17,7 @@
<div class="body">
<div class="text" ref="text"></div>
<div class="media" if={ post.media }>
- <virtual each={ file in post.media }>
- <img src={ file.url + '?thumbnail&size=512' } alt={ file.name } title={ file.name }/>
- </virtual>
+ <mk-images-viewer images={ post.media }/>
</div>
</div>
</div>
diff --git a/src/web/app/desktop/tags/post-detail.tag b/src/web/app/desktop/tags/post-detail.tag
index 37f90a6ffb..23f7a41985 100644
--- a/src/web/app/desktop/tags/post-detail.tag
+++ b/src/web/app/desktop/tags/post-detail.tag
@@ -37,7 +37,7 @@
<div class="body">
<div class="text" ref="text"></div>
<div class="media" if={ p.media }>
- <virtual each={ file in p.media }><img src={ file.url + '?thumbnail&size=512' } alt={ file.name } title={ file.name }/></virtual>
+ <mk-images-viewer images={ p.media }/>
</div>
<mk-poll if={ p.poll } post={ p }/>
</div>
@@ -208,11 +208,6 @@
> mk-url-preview
margin-top 8px
- > .media
- > img
- display block
- max-width 100%
-
> footer
font-size 1.2em