您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Illusion of SECAM specific clutter for any websites you visit
// ==UserScript== // @name SECAM lines // @description Illusion of SECAM specific clutter for any websites you visit // @namespace com.bodqhrohro.secamlines // @include * // @version 0.0.1 // @grant none // ==/UserScript== var SECAM_store = {} var SECAM_randomHeight = () => (Math.random() * window.innerHeight) |0; var SECAM_randomColor = () => { // get hue var colorType = Math.random(); var color = [ 0, 0, 0, 0 ]; if (colorType < 0.6) { color[0] = 255; } else if (colorType < 0.95) { color[2] = 255; } else { color[0] = color[1] = color[2] = 232; } // get brightness var brightness = 0.5 + Math.random() / 2 color[0] *= brightness; color[1] *= brightness; color[2] *= brightness; // get transparency color[3] = 0.2 + Math.random() * 0.8 return 'rgba(' + color.join(',') + ')'; } var SECAM_generator = () => { var ctx = SECAM_store.ctx; ctx.clearRect(0, 0, window.innerWidth, window.innerHeight); SECAM_store.startHeights.forEach((startHeight) => { const linesDensity = 100; const maxLineLength = 30; for (var i = 0; i < linesDensity; i++) { ctx.fillStyle = SECAM_randomColor(); ctx.fillRect(Math.random() * window.innerWidth, startHeight + Math.random() * SECAM_store.barThickness, Math.random() * maxLineLength, 2); } }) window.requestAnimationFrame(SECAM_generator); } window.addEventListener('load', () => { var overlay = document.createElement('canvas'); document.body.appendChild(overlay); overlay.style.position = 'fixed'; overlay.style.top = '0px'; overlay.style.left = '0px'; overlay.style.width = '100vw'; overlay.style.height = '100vh'; overlay.style.pointerEvents = 'none'; overlay.width = window.innerWidth; overlay.height = window.innerHeight; overlay.style.zIndex = 100500; SECAM_store.ctx = overlay.getContext('2d'); // generate places for two garbled bars, regardless of resolution changes for now SECAM_store.barThickness = 30; var firstBarHeight = SECAM_randomHeight(); SECAM_store.startHeights = [ firstBarHeight ]; if (SECAM_store.barThickness * 2 < window.innerHeight) { var secondBarHeight; do { secondBarHeight = SECAM_randomHeight(); } while (Math.abs(secondBarHeight - firstBarHeight) >= SECAM_randomHeight.barThickness); SECAM_store.startHeights.push(secondBarHeight); } window.requestAnimationFrame(SECAM_generator); })