From bb6cab0f497a946199c9fabb32bfdd310bf42b6f Mon Sep 17 00:00:00 2001 From: xiaomlove Date: Tue, 23 Aug 2022 02:25:51 +0800 Subject: [PATCH] improve image prview --- public/js/nexus.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/public/js/nexus.js b/public/js/nexus.js index 61562713..444cbfb3 100644 --- a/public/js/nexus.js +++ b/public/js/nexus.js @@ -8,16 +8,32 @@ jQuery(document).ready(function () { } }) + function getPosition(e, imgEle) { + let imgWidth = imgEle.prop('naturalWidth') + let imgHeight = imgEle.prop("naturalHeight") + let left = e.pageX + 10; + if (left + imgWidth > window.innerWidth) { + left = e.pageX - 10 - imgWidth + } + let top = e.pageY + 10; + if (top + imgHeight > window.innerHeight) { + top = e.pageY - imgHeight / 2 + } + return {left, top} + } var previewEle = jQuery('#nexus-preview') + var imgEle jQuery(".preview").hover(function (e) { - let _this = jQuery(this); - let src = _this.attr("src") + imgEle = jQuery(this); + let position = getPosition(e, imgEle) + let src = imgEle.attr("src") if (src) { - previewEle.attr("src", src).fadeIn("fast"); + previewEle.attr("src", src).css(position).fadeIn("fast"); } }, function (e) { previewEle.fadeOut("fast"); }).on("mousemove", function (e) { - previewEle.css({"left": e.pageX + 10, "top": e.pageY + 10}) + let position = getPosition(e, imgEle) + previewEle.css(position) }) })