diff options
author | r <r@freesoftwareextremist.com> | 2021-05-30 09:13:47 +0000 |
---|---|---|
committer | r <r@freesoftwareextremist.com> | 2021-05-30 09:13:47 +0000 |
commit | 4ab53547a81aa954b694fbde292c14bd2d04b76c (patch) | |
tree | 4ed7280db468abc4b9a05bf05d5d32776772342a /static | |
parent | 9f34b607498c09b4a21bdcc82b3295f6c94bd058 (diff) | |
parent | 44d4b0d379ddfe004bff710c5c3cb44692500ad4 (diff) | |
download | bloat-4ab53547a81aa954b694fbde292c14bd2d04b76c.tar.gz bloat-4ab53547a81aa954b694fbde292c14bd2d04b76c.zip |
Merge branch 'master' into absolute_fluoride
Diffstat (limited to 'static')
-rw-r--r-- | static/fluoride.js | 63 | ||||
-rw-r--r-- | static/style.css | 29 |
2 files changed, 89 insertions, 3 deletions
diff --git a/static/fluoride.js b/static/fluoride.js index 8244d80..c7f3109 100644 --- a/static/fluoride.js +++ b/static/fluoride.js @@ -270,6 +270,64 @@ function handleStatusLink(a) { a.target = "_blank"; } +function setPos(el, cx, cy, mw, mh) { + var h = el.clientHeight; + var w = el.clientWidth; + var left, top; + if (cx < mw/2) { + if (w + cx + 20 < mw) { + left = cx + 20; + } else { + left = (mw - w); + } + } else { + if (cx - w - 20 > 0) { + left = cx - w - 20; + } else { + left = 0; + } + } + top = (cy - (h/2)); + if (top < 0) { + top = 0; + } else if (top + h > mh) { + top = (mh - h); + } + el.style.left = left + "px"; + el.style.top = top + "px"; +} + +var imgPrev = null; +function handleImgPreview(a) { + a.onmouseenter = function(e) { + var mw = document.documentElement.clientWidth; + var mh = document.documentElement.clientHeight - 24; + var img = document.createElement("img"); + img.id = "img-preview"; + img.src = e.target.getAttribute("href"); + img.style["max-width"] = mw + "px"; + img.style["max-height"] = mh + "px"; + img.onload = function(e2) { + setPos(e2.target, e.clientX, e.clientY, mw, mh); + } + document.body.appendChild(img); + imgPrev = img; + } + a.onmouseleave = function(e) { + var img = document.getElementById("img-preview"); + if (img) + document.body.removeChild(img); + imgPrev = null; + } + a.onmousemove = function(e) { + if (!imgPrev) + return; + var mw = document.documentElement.clientWidth; + var mh = document.documentElement.clientHeight - 24; + setPos(imgPrev, e.clientX, e.clientY, mw, mh); + } +} + document.addEventListener("DOMContentLoaded", function() { checkCSRFToken(); checkAntiDopamineMode(); @@ -303,6 +361,11 @@ document.addEventListener("DOMContentLoaded", function() { for (var j = 0; j < links.length; j++) { links[j].target = "_blank"; } + + var links = document.querySelectorAll(".status-media-container .img-link"); + for (var j = 0; j < links.length; j++) { + handleImgPreview(links[j]); + } }); // @license-end diff --git a/static/style.css b/static/style.css index 1921f5e..4e1ddce 100644 --- a/static/style.css +++ b/static/style.css @@ -159,12 +159,20 @@ body { margin-left: 4px; } -.post-content { +textarea { padding: 4px; font-size: 11pt; font-family: initial; +} + +.post-content { + box-sizing: border-box; width: 100%; +} + +#css { box-sizing: border-box; + max-width: 100%; } .pagination { @@ -351,9 +359,10 @@ a:hover, } .emoji-item-container { - min-width: 220px; + width: 220px; display: inline-block; margin: 4px 0; + overflow: hidden; } .emoji-item { @@ -552,6 +561,20 @@ kbd { font-size: 10pt; } +.filters { + margin: 10px 0; +} + +.filters td { + padding: 2px 4px; +} + +#img-preview { + pointer-events: none; + z-index: 2; + position: fixed; +} + .dark { background-color: #222222; background-image: none; @@ -562,7 +585,7 @@ kbd { color: #81a2be; } -.dark #post-content { +.dark textarea { background-color: #333333; border: 1px solid #444444; color: #eaeaea; |