MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / createPreview

Function createPreview

scripts/magnify_image.js:831–1182  ·  view source on GitHub ↗
(
  src,
  _x,
  _y,
  onClose = () => {},
  onFoundBigImg = () => {}
)

Source from the content-addressed store, hash-verified

829}
830
831function createPreview(
832 src,
833 _x,
834 _y,
835 onClose = () => {},
836 onFoundBigImg = () => {}
837) {
838 const { x, y } = validateMouse(_x, _y);
839 const id = "ufs-magnify-image";
840 const exist = document.getElementById(id);
841 if (exist) exist.remove();
842
843 // container
844 let overlay = document.createElement("div");
845 overlay.id = id;
846 overlay.innerHTML = `
847 <div class="ufs-img-anim" style="top: ${y}px; left: ${x}px;"></div>
848 <img
849 src="${src}"
850 style="
851 top: ${window.innerHeight / 2}px;
852 left: ${window.innerWidth / 2}px;
853 transform-origin: center;
854 transform: translate(-50%, -50%) !important;
855 max-width: 100vw;
856 max-height: 100vh;
857 opacity: 0;
858 "/>
859 <div class="ufs-toolbar">
860 <div class="ufs-btn" ufs_title="Original size">Size</div>
861 <div class="ufs-btn" ufs_title="Toggle original size">Z</div>
862 <div class="ufs-btn" ufs_title="Toggle background">B</div>
863 <div class="ufs-btn" ufs_title="Flip horizontal">↔</div>
864 <div class="ufs-btn" ufs_title="Flip vertical">↕</div>
865 <div class="ufs-btn" ufs_title="Rotate left">↺</div>
866 <div class="ufs-btn" ufs_title="Rotate right">↻</div>
867 <div class="ufs-btn" ufs_title="Open in new tab">↗</div>
868 <div class="ufs-btn" ufs_title="Download">⬇️</div>
869 <div class="ufs-btn ufs-dropdown-menu" ufs_title="">🔎 Search by image
870 <ul>
871 ${defaultSearchData
872 .split("\n")
873 .map((s) => {
874 let [title, url] = s.split(" | ");
875 return `<li class="ufs-btn" data-url="${url}">${title}</li>`;
876 })
877 .join("")}
878 </ul>
879 </div>
880 <div class="ufs-desc"></div>
881 </div>
882 `;
883 document.body.appendChild(overlay);
884
885 // animation div: a rect that represent image scaled up from original position (mouse position)
886 const animDiv = overlay.querySelector(".ufs-img-anim");
887 const img = overlay.querySelector("img");
888 const toolbar = overlay.querySelector(".ufs-toolbar");

Callers 3

magnify_image.jsFile · 0.85
magnifyImageFunction · 0.85
chooseImgFunction · 0.85

Calls 12

getLargestImageSrcFunction · 0.90
validateMouseFunction · 0.85
enableDragAndZoomFunction · 0.85
updateZoomFunction · 0.85
addLoadingAnimationFunction · 0.85
resizeToFitWithMinSizeFunction · 0.85
updateSizeFunction · 0.85
svgBase64ToUrlFunction · 0.85
addLoadingAnimationAtPosFunction · 0.85
clickMethod · 0.80
replaceMethod · 0.80
removeMethod · 0.45

Tested by

no test coverage detected