Greasy Fork is available in English.
摸鱼时页面显示与工作不相关的图片未免有些明目张胆,这时候就需要一键隐藏全图了。
// ==UserScript== // @name 一键隐藏图片 // @namespace https://github.com/sdokio // @version 0.3.3 // @author SoyaDokio // @description 摸鱼时页面显示与工作不相关的图片未免有些明目张胆,这时候就需要一键隐藏全图了。 // @homepage https://github.com/sdokio/UserScript // @icon data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMACAYGBwYFCAcHBwkJCAoMFQ4MCwsMGRITDxUeGyAfHhsdHSElMCkhIy0kHR0qOSotMTM2NjYgKDs/OjQ+MDU2M//bAEMBCQkJDAsMGA4OGDMiHSIzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM//AABEIABAAEAMBIgACEQEDEQH/xAAXAAADAQAAAAAAAAAAAAAAAAAABAUG/8QAIxAAAgICAgEEAwAAAAAAAAAAAQIDBAURITEGEhMiQRVhcf/EABUBAQEAAAAAAAAAAAAAAAAAAAME/8QAHBEBAAEEAwAAAAAAAAAAAAAAAQACESExcZHh/9oADAMBAAIRAxEAPwDe5rOXLmYEMk9nH4ZZjX9+sR63fj5NtTpNhgNHsHf6drZH8HlKdZcw2Uo2pBCTIys0LkEjTKPkDrRB62D98lzGLRyEqZDGz5DGzTGWKSLZauTyysoIJXeyCAeyP7Pw/jT2fIjNDVkq4avMs0QsKRI7qrKAo3sINg7I2eufotcy8RM2KQ79n//Z // @icon64 https://cdn.jsdelivr.net/gh/sdokio/UserScript/assets/images/hide_pictures_on_page_64x64.jpg // @supportURL https://github.com/sdokio/UserScript/issues/new/choose // @license MIT // @match *://*/* // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js // @run-at document-start // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @note 2022/01/24 0.3.3 新功能:记忆特定网站习惯(如在www.baidu.com隐藏了图片,关闭浏览器下次再进入仍是默认隐藏。如需再次显示需要自行设置为显示) // @note 2021/01/29 0.3.2 添加logo // @note 2021/01/29 0.3.1 新功能:拖拽控制面板;控制面板位置记忆 // @note 2021/01/27 0.2.1 修复复选框点击无效问题;添加动图使用说明 // @note 2021/01/26 0.1 初版发布 // ==/UserScript== (function () { "use strict"; Array.prototype.indexOf = function (val) { for (var i = 0; i < this.length; i++) if (this[i] == val) return i; return -1; } Array.prototype.remove = function (val) { while (true) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } else { break; } } } var hpop_config_custom; var hpop_config_default = { "version": "0.3.3", "sitesHide": [], "position": { "top": window.innerHeight / 2 - 14 + "", "left": "0", "right": "auto" } } const STYLE_RAW = "" + ".hpop-panel{" + "position:fixed;" + "width:64px;" + "height:20px;" + "font-size:12px;" + "font-weight: 500;" + "font-family:Verdana, Arial, '宋体';" + "background:#f1f1f1;" + "z-index:2147483647;" + "margin: 0;" + "opacity:0.4;" + "transition:0.3s;" + "overflow:hidden;" + "user-select:none;" + "text-align:left;" + "white-space:nowrap;" + "line-height:20px;" + "padding:3px 6px;" + "border:1px solid #ccc;" + "box-sizing: content-box;" + "}" + ".hpop-panel-left{" + "transform:translate(-63px,0);" + "border-width:1px 1px 1px 0;" + "border-top-right-radius: 14px;" + "border-bottom-right-radius: 14px;" + "}" + ".hpop-panel-right{" + "transform:translate(63px,0);" + "border-width:1px 0 1px 1px;" + "border-top-left-radius: 14px;" + "border-bottom-left-radius: 14px;" + "padding-left: 10px;" + "padding-right: 0;" + "}" + ".hpop-panel input{" + "margin: 0;" + "padding: 0;" + "vertical-align:middle;" + "-webkit-appearance:checkbox;" + "-moz-appearance:checkbox;" + "position: static;" + "clip: auto;" + "opacity: 1;" + "cursor: pointer;" + "}" + ".hpop-panel.hpop-panel-active{" + "width:70px;" + "opacity: 0.9;" + "}" + ".hpop-panel.hpop-panel-left-active{" + "left: 0px;" + "transform:translate(0,0);" + "}" + ".hpop-panel.hpop-panel-right-active{" + "right: 0px;" + "transform:translate(0,0);" + "}" + ".hpop-panel label{" + "margin:0;" + "padding:0 0 0 3px;" + "font-weight:500;" + "}" + ".hpop-panel-move{" + "border-width:1px 1px 1px 0;" + "border-radius: 14px;" + "}" + " "; main(); function main() { // 取出本地缓存配置 hpop_config_custom = GM_getValue("hpop_config"); if (!hpop_config_custom) { hpop_config_custom = hpop_config_default; } // 将数据结构的变更保存到本地缓存配置 var updFlag = false; for (var _key in hpop_config_default) { if (!hpop_config_custom.hasOwnProperty(_key)) { hpop_config_custom._key = hpop_config_default._key; updFlag = true; } } if (updFlag) { // 保存当前配置到本地缓存 GM_setValue("hpop_config", hpop_config_custom); } generateControlPanel(); } // 生成控制面板(浮动元素) function generateControlPanel() { // 新建控制面板元素 var node = document.createElement("hide-pictures-on-page"); node.id = "hpop-panel"; if (hpop_config_custom.position.left == 0) { node.className = "hpop-panel hpop-panel-left"; } if (hpop_config_custom.position.right == 0) { node.className = "hpop-panel hpop-panel-right"; } node.style.cssText = "position:fixed;top:" + hpop_config_custom.position.top + "px;" + "left:" + hpop_config_custom.position.left + "px;" + "right:" + hpop_config_custom.position.right + "px;"; node.innerHTML = "<input type='checkbox' id='hpop-switch' />" + "<label style='cursor:pointer;font-size:12px;color:3d3d3d;'>隐藏图片</label>"; // 仅在顶层窗口添加控制面板 if (window.self === window.top) { if (document.querySelector("body")) { document.body.appendChild(node); } else { document.documentElement.appendChild(node); } } // 根据记忆状态(显示/隐藏)初始化该网站 if (hpop_config_custom.sitesHide.indexOf(document.location.hostname) > -1) { document.querySelector("#hpop-switch").checked = true; $(document).ready(function() { $("img").hide(); }); } // 添加控制面板所需样式 var _style = document.createElement("style"); _style.type = "text/css"; _style.innerHTML = STYLE_RAW; if (document.querySelector("#hpop-panel")) { document.querySelector("#hpop-panel").appendChild(_style); } else { GM_addStyle(STYLE_RAW); } // 给控制面板添加鼠标滑入/滑出时展开/吸附效果 node.addEventListener("mouseover", function () { node.classList.add("hpop-panel-active"); if (hpop_config_custom.position.left == 0) { node.classList.add("hpop-panel-left-active"); } if (hpop_config_custom.position.right == 0) { node.classList.add("hpop-panel-right-active"); } }); node.addEventListener("mouseleave", function () { setTimeout(function () { node.classList.remove("hpop-panel-active"); node.classList.remove("hpop-panel-left-active"); node.classList.remove("hpop-panel-right-active"); }, 300); }); // 给控制面板添加拖拽效果 node.addEventListener("mousedown", function (event) { node.style.transition = "null"; var dispX = event.clientX - node.offsetLeft; var dispY = event.clientY - node.offsetTop; var move = function (event) { node.classList.add("hpop-panel-move"); node.style.left = event.clientX - dispX + "px"; node.style.top = event.clientY - dispY + "px"; } document.addEventListener("mousemove", move); document.addEventListener("mouseup", function () { node.classList.remove("hpop-panel-move"); node.style.transition = "0.3s"; document.removeEventListener("mousemove", move); var bodyWidth = document.body.clientWidth; var hpop_nodeWidth = node.offsetLeft + node.offsetWidth / 2; if (hpop_nodeWidth > bodyWidth / 2) { node.style.left = "auto"; node.style.right = 0; node.classList.remove("hpop-panel-left"); node.classList.add("hpop-panel-right"); hpop_config_custom.position.left = "auto"; hpop_config_custom.position.right = "0"; } else { node.style.left = hpop_config_custom.position.left = 0; node.style.right = hpop_config_custom.position.right = "auto"; node.classList.add("hpop-panel-left"); node.classList.remove("hpop-panel-right"); } hpop_config_custom.position.top = node.offsetTop; // 保存当前配置到本地缓存 GM_setValue("hpop_config", hpop_config_custom); }); }); // 给控制面板添加点击显示/隐藏效果 var toggleShowHide = function () { if (document.querySelector("#hpop-switch").checked) { document.querySelector("#hpop-switch").checked = false; $("img").show("500"); // 取消记忆本网站下次默认隐藏图片 hpop_config_custom.sitesHide.remove(document.location.hostname); } else { document.querySelector("#hpop-switch").checked = true; $("img").hide("500"); // 记忆本网站下次默认隐藏图片 hpop_config_custom.sitesHide.push(document.location.hostname); } // 保存当前配置到本地缓存 GM_setValue("hpop_config", hpop_config_custom); } node.addEventListener("click", toggleShowHide); node.querySelector("#hpop-switch").addEventListener("click", toggleShowHide); } })();