Greasy Fork is available in English.
输出当前鼠标位置相对于选中的精灵图中心点的坐标值
// ==UserScript== // @name Spritecow显示坐标 // @namespace Siner // @version 1.2 // @description 输出当前鼠标位置相对于选中的精灵图中心点的坐标值 // @author Siner // @match *://*/* // @license Siner // @match *spritecow.com/* // @icon http://www.spritecow.com/assets/9/favicon.ico // @grant none // ==/UserScript== (function() { 'use strict'; //添加输出区域 document.getElementsByClassName("toolbar bottom")[0].innerHTML += "<div class='toolbar-group'><div role='button' class='invert-bg' id='SourcerectDiv'><font style='vertical-align: inherit;'><font style='vertical-align: inherit;'>Sourcerect:<span id='Sourcerect'></span></font></font></div><div role='button' class='invert-bg'><font style='vertical-align: inherit;'><font style='vertical-align: inherit;'>Handle:<span id='Handle'></span></font></font></div></div>"; document.getElementsByClassName("toolbar bottom")[0].innerHTML += "<div role='button' class='select-sprite active'>点击Sourcerect可复制值</div>"; //初始化变量: var Sourcerect = ""; var Handle = ""; //鼠标移动事件,计算Handle位置 function mouseMove(ev) { ev = ev || window.event; var highlight = document.getElementsByClassName("highlight")[0]; var mousePos = mouseXY(ev); //计算大小 var x = Number(highlight.style.width.substr(0,highlight.style.width.length - 2)) / 2 + Number(highlight.style.left.substr(0,highlight.style.left.length - 2)) + 20; var y = Number(highlight.style.height.substr(0,highlight.style.height.length - 2)) / 2 + Number(highlight.style.top.substr(0,highlight.style.top.length - 2)) + 60; Handle = Math.round(mousePos.x - x) + "," + Math.round((mousePos.y - y) * -1); document.getElementById('Handle').innerHTML = Handle; } //鼠标点击事件,计算Sourcerect位置 function mouseClick(ev) { setTimeout(function () { var highlight = document.getElementsByClassName("highlight")[0]; Sourcerect = highlight.style.left + "," + highlight.style.top + "," + highlight.style.width + "," + highlight.style.height; Sourcerect = Sourcerect == ",,," || highlight.style.width =="0px" ? "None":Sourcerect.replace(/px/g,''); document.getElementById('Sourcerect').innerHTML = Sourcerect; }, 100) } //获取鼠标位置 function mouseXY(ev) { if (ev.pageX || ev.pageY) { return { x: ev.pageX, y: ev.pageY }; } return { x: ev.clientX + document.body.scrollLeft - document.body.clientLeft, y: ev.clientY + document.body.scrollTop - document.body.clientTop }; } function copy (text) { const el = document.createElement('input') el.setAttribute('value', text) document.body.appendChild(el) el.select() if (document.execCommand('copy')){ document.body.removeChild(el); //alert('复制成功,Sourcerect值为:' + text); }else{ document.body.removeChild(el); //alert('复制失败,已被浏览器阻止,请手动填写Sourcerect值:' + text); } } //注册点击事件 document.onmousemove = mouseMove; document.getElementsByClassName("sprite-canvas-container")[0].onclick = mouseClick; //document.onclick = mouseClick; document.getElementById('SourcerectDiv').onclick = function copySourcerect() {copy(Sourcerect);}; })();