diff options
| author | shpuld <shp@cock.li> | 2019-01-30 16:38:28 +0200 |
|---|---|---|
| committer | shpuld <shp@cock.li> | 2019-01-30 16:38:28 +0200 |
| commit | 0a39159fdf99143ddf05580f066508e6d5a90773 (patch) | |
| tree | d27242f193c87907ede88119a638cce3140347a7 /src | |
| parent | 3cfbf0141f9e5c2c835699c5427d4829da412328 (diff) | |
Adjust scrolling logic and document it, make sure to never show 'show less' if it's not a tall status
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/status/status.js | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/components/status/status.js b/src/components/status/status.js index 558125df..6ef13010 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -179,7 +179,7 @@ const Status = { return this.tallStatus }, showingMore () { - return this.showingTall || (this.status.summary && this.expandingSubject) + return (this.tallStatus && this.showingTall) || (this.status.summary && this.expandingSubject) }, nsfwClickthrough () { if (!this.status.nsfw) { @@ -303,11 +303,14 @@ const Status = { 'highlight': function (id) { if (this.status.id === id) { let rect = this.$el.getBoundingClientRect() - if (rect.top < 140) { - window.scrollBy(0, rect.top - 200) - } else if (rect.top < window.innerHeight && rect.height >= (window.innerHeight - 50)) { - window.scrollBy(0, rect.top - 50) + if (rect.top < 100) { + // Post is above screen, match its top to screen top + window.scrollBy(0, rect.top - 100) + } else if (rect.height >= (window.innerHeight - 50)) { + // Post we want to see is taller than screen so match its top to screen top + window.scrollBy(0, rect.top - 100) } else if (rect.bottom > window.innerHeight - 50) { + // Post is below screen, match its bottom to screen bottom window.scrollBy(0, rect.bottom - window.innerHeight + 50) } } |
