noPIC 一键隐藏/显示全页面图片

隐藏图片和标题

目前为 2024-06-12 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name noPIC 一键隐藏/显示全页面图片
  3. // @version 3.0
  4. // @description 隐藏图片和标题
  5. // @author fxalll
  6. // @match *://*/*
  7. // @grant none
  8. // @license MIT
  9. // @run-at document-body
  10. // @namespace https://gf.qytechs.cn/users/1043548
  11. // ==/UserScript==
  12.  
  13.  
  14.  
  15. (function () {
  16.  
  17. let active = false;
  18. let currentX;
  19. let currentY;
  20. let initialX;
  21. let initialY;
  22. let xOffset = 0;
  23. let yOffset = 0;
  24.  
  25. let startTime = 0
  26.  
  27. window.imgHidenSet = null;
  28. window.imgShownSet = null;
  29.  
  30. let yanEmoji = [
  31. "(‐^▽^‐)",
  32. " ٩(๑òωó๑)۶",
  33. " ヾ(≧?≦)〃",
  34. " o(>ω<)o",
  35. " ( ̄▽ ̄)ノ",
  36. " ๑乛◡乛๑ ",
  37. " (^_^)",
  38. " (^▽^) ",
  39. " ↖(ω)↗",
  40. " (=-ω-=)",
  41. " ٩(◕‿◕。)۶ ",
  42. " \(☆o☆)/",
  43. " (.) ",
  44. " (-)",
  45. " ლ(⌒▽⌒ლ)",
  46. " ໒( ◔ ▽ ◔ )७",
  47. " (o⌒.⌒o) ",
  48. " ٩(ᴗ)۶ ",
  49. "o(o)o",
  50. " ︿( ̄︶ ̄)︿ ",
  51. " (๑¯∀¯๑)",
  52. " (~ ̄▽ ̄)~",
  53. " (☆▽☆)",
  54. " (p≧w≦q)",
  55. " (/≧▽≦)/",
  56. " ٩(๑❛ᴗ❛๑)۶",
  57. " Y(o)Y",
  58. " O(∩∩)O ",
  59. " = ̄ω ̄=",
  60. " (●^o^●) ",
  61. "(★>U<★)",
  62. " (★ᴗ★)",
  63. "(;´д`)ゞ",
  64. "(;д;)",
  65. "(;へ:)",
  66. "(╥╯╰╥)",
  67. "╮(╯﹏╰)╭",
  68. "╭(╯╰)╮",
  69. "(╯︵╰)",
  70. "(╯﹏╰)b",
  71. "罒ω罒",
  72. "( Ĭ ^ Ĭ )",
  73. "(T_T)",
  74. "(T▽T)",
  75. "(ㄒoㄒ)",
  76. "╥﹏╥",
  77. "o(╥﹏╥)o",
  78. "〒▽〒",
  79. " (T_T) ",
  80. "T^T",
  81. "/(ㄒoㄒ)/~",
  82. "(T ^ T) ",
  83. "ε(┬┬﹏┬┬)3",
  84. " o(TωT)o ",
  85. "(〒︿〒)",
  86. "T_T",
  87. "┭┮﹏┭┮",
  88. "ε(┬┬﹏┬┬)3 ",
  89. "༼༎ຶᴗ༎ຶ༽",
  90. "⊙︿⊙",
  91. "⊙﹏⊙",
  92. "(ó﹏ò。)",
  93. " ̄へ ̄",
  94. "~~o(>_<)o ~~",
  95. "ɖී؀ීϸ",
  96. " (」゜ロ゜)」",
  97. " (´⊙ω⊙`)!",
  98. " щ(゜ロ゜щ) ",
  99. " ༼∩·́ω·̀∩༽ ",
  100. " ໒( ◑ w ◑ )७",
  101. " ԅ༼ . º ʖ̯ º . ༽ง",
  102. " (⊹◕ʖ̯◕)",
  103. " ⊙▂⊙",
  104. " ⋋⁞ ◔ ﹏ ◔ ⁞⋌ ",
  105. " 乁໒( ͒ ⌂ ͒ )७ㄏ",
  106. " Σ(っ°Д°;)っ",
  107. " ╰(⊹◕۝◕ )╯",
  108. " ╰[ ⁰﹏⁰ ]╯ ",
  109. " ʕ⊙ᴥ⊙ʔ",
  110. " 〳 ◔ Ĺ̯ ◔ 〵",
  111. " (●´ω`●) ",
  112. " ╰(”◕﹏◕”)つ",
  113. " o͡͡͡╮༼ · ʖ̯ · ༽╭o͡͡͡ ",
  114. "\(0)/",
  115. " ໒( ” ͠° ʖ̫ °͠ ” )७",
  116. " w(@。@;)w",
  117. " (/。\) ",
  118. " ヽ༼ ʘ ∧ ʘ ༽ᓄ",
  119. " w(°o°)w",
  120. " (°д°) ",
  121. "(∩◕(oo)◕∩ ) ",
  122. " (゜ロ゜) ",
  123. " ༼ノ۞⌂۞༽ノ",
  124. "(゜д゜)",
  125. "༼ ಠ ▃ ಠೃ ༽ ",
  126. " ʕ ᓀ ᴥ ᓂ ʔ",
  127. " ⋋╏ ᓀ 〜 ᓂ ╏⋌",
  128. " ╚═| ~ ಠ ₒ ಠ ~ |═╝",
  129. " ╭(๑¯д¯๑)╮",
  130. " ୧( ಠ Д ಠ )୨",
  131. " ᕦ໒( ⊡ 益 ⊡ )७ᕤ",
  132. " (눈눈)",
  133. " <(-︿-)>",
  134. " ╰༼ ⋋ ‸ ⋌ ༽╯",
  135. " (◣◢)",
  136. " ╰| ⁰ ෴ ⁰ |╯ ",
  137. " (o˘д˘)o ",
  138. " (╬·᷅д·᷄╬)",
  139. " (๑‾᷆д‾᷇๑)",
  140. " o(≧o≦)o",
  141. " [ ಠ □ ಠೃ ] ",
  142. " (╯-_-)╯╧╧ ",
  143. " ᕦ໒( ᴼ 益 ᴼ )७ᕤ",
  144. " c༼ ” ͡° ▃ °͡ ” ༽ᕤ",
  145. " ꒰╬·᷅д·᷄╬꒱",
  146. "╰_ ╯",
  147. "(艹皿艹)",
  148. "(▼ヘ▼#)",
  149. "c〳 ݓ ﹏ ݓ 〵੭",
  150. " o(╥﹏╥)o ",
  151. " ╭(ʘ̆◞౪◟ʘ̆)╮",
  152. " ┏། ﹒ _ ﹒ །┓",
  153. " ┌(▀Ĺ̯▀)┐ ",
  154. " ┌༼◉ل͟◉༽┐",
  155. " (▰˘︹˘▰)",
  156. " (ㄒoㄒ) ",
  157. " (iДi)",
  158. " c( ˵ ╥ ͟ʖ ╥ ˵ )੭",
  159. " ┭┮﹏┭┮",
  160. " ┌(▀Ĺ̯ ▀-͠ )┐",
  161. " ┌໒( : ⊘ ۝ ⊘ : )७┐",
  162. " ᗜੂͦ﹏ᗜੂͦ ",
  163. "┌〳 ・ o ・ 〵┐",
  164. " ┌[ ◔ ͜ ʖ ◔ ]┐",
  165. " ੧║ ☯ ⌂ ☯ ║┐",
  166. " ┌། ☯ ʖ ☯ །┐",
  167. " ┌〳 ۞ ﹏ ۞ 〵┐ ",
  168. "┌╏ º □ º ╏┐ ",
  169. " ༼ ╥ ل ╥ ༽ ",
  170. "(︶︹︺) ",
  171. " ┏(--)┓",
  172. "┏(--)┛┗(-- )┓",
  173. " ͼ(ݓ_ݓ)ͽ",
  174. " (╯︵╰,) ",
  175. " (⋟﹏⋞)",
  176. "(-^〇^-)",
  177. " (▰˘o˘▰)",
  178. " ヾ(。 ̄□ ̄)ツ ",
  179. " ヾ( ̄□ ̄;)ノ ",
  180. " (*-ω-) ",
  181. " (∪。∪)。。。zzz",
  182. " (ᴗ˳ᴗ)",
  183. " \(o ̄∇ ̄o)/ ",
  184. " (≚ᄌ≚)ƶƵ ",
  185. "\(´O`)/",
  186. " ✾꒡ .̮ ꒡✾",
  187. " ƪ(‾ ̄o ̄”)ʃ ",
  188. " -O-",
  189. " ∑( ̄□ ̄)",
  190. " π_π",
  191. " [(--)]zzz",
  192. " ( ̄o ̄) . z Z",
  193. " (˴́³[▒]꒱⌕˚º꒰…꒱",
  194. "凸( ·̀·́ )凸",
  195. " ᕕ༼ ՞ ͜ʖ ՞ ༽凸",
  196. " ༼凸 ◉◔༽凸",
  197. " ໒( ·̀ ◡ ·́ )७┌∩┐",
  198. " ╭∩╮◕ل͜◕)╭∩╮",
  199. " 凸༼ຈل͜ຈ༽凸",
  200. " ┌∩┐༼ ºل͟º ༽┌∩┐",
  201. " 凸(⊙▂⊙✖ )",
  202. " ╭∩╮ʕ·ᴥ·ʔ╭∩╮",
  203. " 凸( ·̀ 3 ·́ )凸",
  204. " 凸〳 ಥ ڡ ಥ 〵凸",
  205. " ┌∩┐(◕◡◉)┌∩┐",
  206. " t( -_- t )",
  207. " ᕕ╏ ͡ᵔ ‸ ͡ᵔ ╏凸",
  208. " ٩║ ✿ ᴼ ل ᴼ ✿ ║┌∩┐",
  209. " ╭∩╮໒(✪ਊ✪)७╭∩╮",
  210. " ໒( ͡; 益 ͡; )७┌∩┐",
  211. " ᕕ໒( * ◕ ڡ ◕ * )७╭∩╮",
  212. " ╭∩╮( ͡° ل͟ ͡° )╭∩╮",
  213. " ╭∩╮(ಠ۝ಠ)╭∩╮",
  214. "░ ∗ ◕ ں ◕ ∗ ░ ",
  215. " (V●ᴥ●V) ",
  216. " ༼ つ ◕◕ ༽つ",
  217. " ༼∩·́ω·̀∩༽ ",
  218. " ʕ ᓀ ᴥ ᓂ ʔ",
  219. " (⊙ᗜ⊙) ",
  220. " ╰། ❛ ڡ ❛ །╯ ",
  221. " ヽ༼ ் ▽ ் ༽╯ ",
  222. " ⋋| ՞ ‸ ՞ |⋌ ",
  223. "ヽ(╯▽╰)ノ ",
  224. " (⊃。·́‿·̀。)⊃",
  225. " ⋋| ՞ ‸ ՞ |⋌",
  226. " ლ ( ◕ ᗜ ◕ ) ლ",
  227. " ʕ⊙ᴥ⊙ʔ",
  228. " (⊹つ·۝·⊹)つ",
  229. " ༼∩·́ω·̀∩༽ ",
  230. " ⋋( ◕ ∧ ◕ )⋌",
  231. " ʕ ⊃・ ◡ ・ ʔ⊃",
  232. " ʕ༼◕ ౪ ◕✿༽ʔ",
  233. " ୧ʕ ⇀ ⌂ ↼ ʔ୨",
  234. " [ ಠ (oo) ಠ ]",
  235. " s( ^ ‿ ^)-b",
  236. " ▓⚗⚗▓",
  237. " ୧། ☉ ౪ ☉ །୨",
  238. " ヽ໒(☯_☯✿)७ノ",
  239. " ╏ ·́ – ·̀ ╏",
  240. " @( ◕ x ◕ )@",
  241. " (°ヮ°)",
  242. " ༼☯﹏☯༽ ",
  243. " ୧| ⁰ ᴥ ⁰ |୨",
  244. "ᕙ། ◕ – ◕ །ᕗ",
  245. " ᕦ[ ◔ (oo) ◔ ]ᕤ ",
  246. " ᕙ( * ·̀ ᗜ ·́ * )ᕗ",
  247. " ᕦʕ ° o ° ʔᕤ ",
  248. " ᕙ༼ຈل͜ຈ༽ᕗ ",
  249. " ᕙ[ ˵ ͡’ ω ͡’ ˵ ]ᕗ ",
  250. " ᕙ( ͡◉ ͜ ʖ ͡◉)ᕗ",
  251. " ᕙ( ͡° ͜ʖ ͡°)ᕗ",
  252. " ᕙʕ ◖ ڡ ◗ ʔᕗ",
  253. " ୧╏ ՞ _ ՞ ╏୨",
  254. " ᕙ༼◕◞౪◟◕༽ᕗ",
  255. " ᕦ╏ ¬ ʖ̯ ¬ ╏ᕤ",
  256. " ᕦ( ̿ ﹏ ̿ )ᕤ",
  257. " ᕦ( ⊙ ∧ ⊙ )ᕤ",
  258. " ᕙ(⇀∏↼)ᕗ",
  259. " ᕙ▐ ° ◯ ° ▐ᕗ",
  260. " ᕦ༼ ~ ·́ ₒ ·̀ ~ ༽ᕤ",
  261. " ᕦ| º ෴ º |ᕤ",
  262. " ᕦ( ⊙ ∧ ⊙ )ᕤ",
  263. " ᕙ▐ ° ◯ ° ▐ᕗ",
  264. " ᕙ༼◕ ᴥ ◕༽ᕗ",
  265. " ᕦ⊙෴⊙ᕤ",
  266. " ᕙ། – ڡ – །ᕗ",
  267. "ヾ(=・ω・=)o",
  268. "( ̄. ̄)",
  269. "( ̄︶ ̄)↗",
  270. " ̄ω ̄=",
  271. "o( ̄▽ ̄)d ",
  272. "( ̄3 ̄)a ",
  273. " ̄▽ ̄",
  274. "╮( ̄▽ ̄)╭",
  275. "b( ̄▽ ̄)d",
  276. "(~o ̄3 ̄)~ ",
  277. "( ̄︶ ̄)/ ",
  278. "∠( °ω°)/ ",
  279. "(灬°ω°灬) ",
  280. "(o°ω°o)",
  281. "┗(·ω·;)┛",
  282. "ヽ(·ω·。)ノ",
  283. "(๑·ω·๑)",
  284. "(๑Ő௰Ő๑)",
  285. "(❦ω❦)",
  286. "ヽ(ω)ノ ",
  287. " (〃ω) ",
  288. "(❁´3`❁)",
  289. "ヾ(ΦωΦ)ツ",
  290. "(๑╹っ╹๑)",
  291. "(.ω.)",
  292. "( :3 )",
  293. "(·ᴗ·)",
  294. "。◕ᴗ◕。",
  295. "ლ(^ω^ლ)",
  296. "ლ(❛◡❛✿)ლ",
  297. "ლ(⁰⊖⁰ლ)",
  298. "ლ(|||⌒εー|||)ლ"
  299. ]
  300.  
  301. let randomNumSet;
  302.  
  303.  
  304. let imgHiden = function() {
  305. try {
  306. document.querySelectorAll(".RichContent-cover-inner").forEach((e)=>e.style.display="none")
  307. } catch {}
  308. try {
  309. document.querySelectorAll(".ZVideoRecommendationItem-thumbnailImage").forEach((e)=>e.style.display="none")
  310. } catch {}
  311. try {
  312. document.querySelectorAll(".QuestionHeader-title").forEach((e)=>e.style.display="none")
  313. } catch {}
  314. try {
  315. document.querySelectorAll("iframee").forEach((e)=>e.style.display="none")
  316. } catch {}
  317. try {
  318. document.querySelectorAll("img").forEach((e)=>e.style.display="none")
  319. } catch {}
  320. };
  321.  
  322.  
  323. let imgShown = function() {
  324. try {
  325. document.querySelectorAll(".RichContent-cover-inner").forEach((e)=>e.style.display="")
  326. } catch {}
  327. try {
  328. document.querySelectorAll(".ZVideoRecommendationItem-thumbnailImage").forEach((e)=>e.style.display="")
  329. } catch {}
  330. try {
  331. document.querySelectorAll(".QuestionHeader-title").forEach((e)=>e.style.display="")
  332. } catch {}
  333. try {
  334. document.querySelectorAll("iframee").forEach((e)=>e.style.display="")
  335. } catch {}
  336. try {
  337. document.querySelectorAll("img").forEach((e)=>e.style.display="")
  338. } catch {}
  339. };
  340.  
  341.  
  342.  
  343. let handleButtonClick = function(){
  344. if (window.imgHidenSet === null) {
  345. clearInterval(window.imgShownSet);
  346. window.imgShownSet = null;
  347. imgHiden()
  348. saveStorageList()
  349. window.imgHidenSet = setInterval(function(){
  350. imgHiden();
  351. }, 1000)
  352.  
  353. } else {
  354. clearInterval(window.imgHidenSet);
  355. window.imgHidenSet = null;
  356. imgShown()
  357. deleteStorageList()
  358. window.imgShownSet = setInterval(function(){
  359. imgShown();
  360. }, 1000)
  361. }
  362. }
  363.  
  364. let noDetectStorageList = function() {
  365. if (localStorage.getItem('nopicValueList') !== null) {
  366. let valueList = localStorage.getItem('nopicValueList').split(',');
  367. if (valueList.indexOf(location.host) === -1) return true;
  368. } else {
  369. localStorage.setItem('nopicValueList',['fxalll'])
  370. return true;
  371. }
  372. return false;
  373. }
  374.  
  375. let saveStorageList = function() {
  376. if (noDetectStorageList()) {
  377. let valueList = localStorage.getItem('nopicValueList').split(',');
  378. valueList.push(location.host);
  379. localStorage.setItem('nopicValueList',valueList)
  380. }
  381. }
  382.  
  383. let deleteStorageList = function() {
  384. if (!noDetectStorageList()) {
  385. let valueList = localStorage.getItem('nopicValueList').split(',');
  386. valueList = valueList.filter(function(value) { return value !== location.host});
  387. localStorage.setItem('nopicValueList',valueList)
  388.  
  389. }
  390. }
  391.  
  392. // 自动隐藏图片
  393. if (!noDetectStorageList()) {
  394. imgHiden();
  395. window.imgHidenSet = setInterval(function(){
  396. imgHiden();
  397. }, 300)
  398. }
  399.  
  400.  
  401. let button = document.createElement('div')
  402. button.innerText = "◀"
  403. button.setAttribute("id", "myButton");
  404. button.style.color = "#0000007d"
  405. button.style.padding = "10px 15px"
  406. button.style.position = "fixed"
  407. button.style.bottom = "20px"
  408. button.style.right = "3px"
  409. button.style.textAlign = "center"
  410. button.style.alignContent = "center"
  411. button.style.background = "#97979759"
  412. button.style.borderRadius = "15px"
  413. button.style.border = "2px solid #0000007d"
  414. button.style.cursor = "pointer"
  415. button.style.transform = "translate3d(30%,0,0)"
  416. button.style.transition = "0.1s"
  417. button.style.backdropFilter = "saturate(180%) blur(20px)"
  418.  
  419. button.style.zIndex = "99999999999999999999999999999"
  420.  
  421. // 添加鼠标悬停效果
  422. button.addEventListener('mouseover', mouseover);
  423.  
  424. button.addEventListener('mouseout', mouseout);
  425.  
  426. // 鼠标拖拽
  427.  
  428. button.addEventListener('mousedown', dragStart, false);
  429. //button.addEventListener('mouseup', dragEnd, false);
  430. //button.addEventListener('mouseout', dragEnd, false);
  431.  
  432. function mouseover() {
  433. // 当鼠标悬停在元素上时,改变元素的样式
  434. button.style.boxShadow = "0 0 10px rgba(0, 0, 0, 0.5)"; /* 鼠标悬停时的阴影效果 */;
  435. button.style.background = "#0000004a"
  436. button.style.color = "#ffffff"
  437. button.innerText = "图片显隐"
  438. button.style.transform = "translateX(0px)"
  439. button.style.border = "2px solid #ffffff"
  440.  
  441. setTranslate(0+"%",currentY+"px",button);
  442. }
  443.  
  444. function mouseout() {
  445. // 当鼠标离开元素时,恢复元素的样式
  446. button.style.boxShadow = '';
  447. button.style.background = "#97979759"
  448. button.style.color = "#0000007d"
  449. button.innerText = "◀"
  450. button.style.transform = "translateX(30%)"
  451. button.style.border = "2px solid #0000007d"
  452.  
  453. setTranslate(30+"%",currentY+"px",button);
  454.  
  455. }
  456.  
  457.  
  458.  
  459. function dragStart(e) {
  460. //记录点击事件,防止拖拽触发点击事件
  461. startTime = e.timeStamp
  462.  
  463. //initialX = e.clientX - xOffset;
  464. initialX = e.clientX;
  465. initialY = e.clientY - yOffset;
  466.  
  467. //写外面会导致鼠标一快拖拽就失效了,把拖拽事件写到点击里面,事件处理函数添加到 document 上,而非目标元素上,让 mousemove事件在有延迟的情况下仍然可以被响应
  468. document.addEventListener('mousemove', drag);
  469. document.addEventListener('mouseup', dragEnd, false);
  470.  
  471. // 阻止默认事件
  472. e.preventDefault();
  473.  
  474. randomNumSet = Math.round(Math.random()*(yanEmoji.length-1))
  475.  
  476. }
  477.  
  478. function dragEnd(e) {
  479. if (startTime) {
  480. let diffTime = e.timeStamp - startTime
  481. diffTime < 150 && handleButtonClick() //小于150就执行单击操作
  482. startTime = 0
  483. }
  484.  
  485. initialX = currentX;
  486. initialY = currentY;
  487.  
  488. mouseout();
  489.  
  490. document.removeEventListener('mousemove', drag);
  491. }
  492.  
  493. function drag(e) {
  494.  
  495. changeFace(randomNumSet,button);
  496.  
  497. button.style.color = "#ffffff91"
  498. button.style.border = "4px dashed rgb(255 255 255 / 49%)"
  499.  
  500. e.preventDefault();
  501. currentX = e.clientX - initialX;
  502. currentY = e.clientY - initialY;
  503.  
  504. xOffset = currentX;
  505. yOffset = currentY;
  506.  
  507. setTranslate(currentX+"px", currentY+"px", button);
  508. }
  509.  
  510. function setTranslate(xPos, yPos, el) {
  511. el.style.transform = "translate3d(" + xPos + ", " + yPos + ", 0)";
  512. //el.style.transform = "translate3d(" + xPos + "px, " + yPos + "px, 0)";
  513. }
  514.  
  515. function changeFace(randomNum,el) {
  516. el.innerText = yanEmoji[randomNum]
  517. }
  518.  
  519.  
  520.  
  521. document.body.appendChild(button);
  522.  
  523.  
  524. })()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址