Greasy Fork is available in English.

调整网页亮度

调整网页亮度,护眼

// ==UserScript==
// @name         调整网页亮度
// @namespace    http://tampermonkey.net/
// @version      0.6
// @description  调整网页亮度,护眼
// @description:en  Adjust page brightness,eyeshield
// @author       wodexianghua
// @match        http://*/*
// @match        https://*/*
// @match        file:///*
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

(function () {
    'use strict';
    //保证iframe不起作用
    if (self == top) {
        var timer = null;
        var mousemove = false;
        var shift_downorup = false;
        var liangduui;
        var liangduuitz;
        var liangduuitzmouse;
        var __nightingale_view_cover;

        function insertHTML(lv) {
            if (self == top) {
                //https://www.easyicon.net/api/resizeApi.php?id=1180288&size=24
                document.body.insertAdjacentHTML("beforebegin",
                    '<div class="liangduui" style="display: none; width: 60px; height: 170px; background-color: rgb(255, 255, 255); z-index: 2147483640; position: fixed; top: 200px; left: 50%; border-radius: 50px; box-shadow: rgb(74, 74, 74) 0px 0px 20px;"><div class="liangduuitzmouse" style="width:40%;height:100px;background-color:#cecece;position:absolute;top:20px;left:30%;border-radius:50px;cursor:pointer"><div class="liangduuitz" style="width: 100%; height: 100%; background-color: rgb(147, 112, 223); position: absolute; bottom: 0px; right: 0px; border-radius: 50px;"></div></div><div style="background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAtFBMVEUAAABPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNPXXNOXHJNXHJmcoVgbIBqdolNW3GwtsBNW3JMW3GLlKLX2+BfbIBKWG+CjJyDjZxKWW/Y2+CLlKNea3+XoK1pdYh9iJiYoK16hZbS1tz5+fr////T1tzs7fCDjJxmc4bS1ttpdYd6hZXr7e98hpfj5em7wcmutL6utb9gbYGqsLvt7vFueYxjZY6cAAAAD3RSTlMAAAhBktDyOKftBmzngPgUDvOpAAAAAWJLR0QqU77UngAAAAd0SU1FB+UCEQw2CnjrwgQAAAE1SURBVCjPdZLpdoIwEIUTFgFRJyAQEFdWQVvr1rq8/3t1kkBPz2mdPzm5H9zZQgghlFJNN8wBwMA0dA2vhCiZWrYDXTi2RRWidOiOpMaYPEbuUADUxxMUPWC+z8BDOBkLQqkr9GkAYRRxCKaCuAJYwidOZul8sVyl600s3CxKNBu/j3mWF2VVlUWe8Rj/sTWiO+izyXi9bdq22dU8S9DN0YkB4AXrvN63MvZ1Pgs8AIOYosK02LVdbItUKCbBflk4L5seNOU8xCQDgrofvVXtT1SL6B2JAst/wF+rlbLqkh96cPjokstyZ/nxpPTTMV+rcmWDScbOF6FfzizbqAbVSBiEVwGuobyIkaghIvwU4KtbidWPHcHt/njcbxKosatFIYHnE5Q+7lfYrZbz36t9/RhePJ9vQOAtdle14JgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDctMTlUMDM6Mzk6MTgrMDA6MDA7B0fYAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTAxLTA4VDE5OjM5OjQ4KzAwOjAwyXZcbAAAACB0RVh0c29mdHdhcmUAaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcme8zx2dAAAAGHRFWHRUaHVtYjo6RG9jdW1lbnQ6OlBhZ2VzADGn/7svAAAAGHRFWHRUaHVtYjo6SW1hZ2U6OkhlaWdodAAxMjhDfEGAAAAAF3RFWHRUaHVtYjo6SW1hZ2U6OldpZHRoADEyONCNEd0AAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9wbmc/slZOAAAAF3RFWHRUaHVtYjo6TVRpbWUAMTU0Njk3NjM4OKgYFgEAAAARdEVYdFRodW1iOjpTaXplADMzMDhCPmi6RgAAAFp0RVh0VGh1bWI6OlVSSQBmaWxlOi8vL2RhdGEvd3d3cm9vdC93d3cuZWFzeWljb24ubmV0L2Nkbi1pbWcuZWFzeWljb24uY24vZmlsZXMvMTE4LzExODAyODgucG5n1XuOIwAAAABJRU5ErkJggg==);width:24px;height:24px;position:absolute;bottom:15px;right:18px;border-radius:50%;box-shadow:0 0 10px #9370df;background-repeat:no-repeat"></div></div><div id="__nightingale_view_cover" style="width: 100%; height: 100%; transition: -webkit-transform 10s ease-in-out 0s; position: fixed !important; left: 0px !important; bottom: 0px !important; overflow: hidden !important; background: rgb(0, 0, 0) !important; pointer-events: none !important; z-index: 2147483647; opacity: ' +
                    lv + ';"></div>');
            }

            liangduui = document.querySelector(".liangduui");
            liangduuitz = document.querySelector(".liangduuitz");
            liangduuitzmouse = document.querySelector(".liangduuitzmouse");
            __nightingale_view_cover = document.querySelector("#__nightingale_view_cover");

            liangduui.style.top = ((window.innerHeight / 2) - (liangduui.style.height.replace("px", "") / 2)) + "px";
            liangduui.style.left = ((window.innerWidth / 2) - (liangduui.style.width.replace("px", "") / 2)) + "px";

            liangduuitzmouse.addEventListener('mousedown', function (event) {
                window.clearTimeout(timer);
                mousemove = true;
                liangduuitz.style.height = (100 - (event.clientY - liangduui.offsetTop - liangduuitzmouse.offsetTop)) + "%"
                lv = (event.clientY - liangduui.offsetTop - liangduuitzmouse.offsetTop) / 100;
                GM_setValue("lv", lv);
                __nightingale_view_cover.style.opacity = lv
            });

            liangduuitzmouse.addEventListener('mousemove', function (event) {
                if (!mousemove) return;
                if (liangduuitz.offsetTop <= 0 || liangduuitz.offsetTop > 100) return;
                liangduuitz.style.height = (100 - (event.clientY - liangduui.offsetTop - liangduuitzmouse.offsetTop)) + "%"
                lv = (event.clientY - liangduui.offsetTop - liangduuitzmouse.offsetTop) / 100;
                GM_setValue("lv", lv);
                __nightingale_view_cover.style.opacity = lv
            });

            liangduuitzmouse.addEventListener('mouseup', function (event) {
                mousemove = false;
                timer = setTimeout(function () {
                    liangduui.style.display = "none";
                }, 2000);
            });

            liangduuitzmouse.addEventListener('mousewheel', function (event) {
                mousemove = false;
                timer = setTimeout(function () {
                    liangduui.style.display = "none";
                }, 2000);
            });
        }

        if (GM_getValue("lv") == undefined) {
            GM_setValue("lv", '0.35');
        }

        document.addEventListener('keydown', function (event) {
            if (event.altKey && event.which == 40) {
                var lv = parseFloat(GM_getValue("lv"));
                lv += 0.02;
                if (lv > 1.0) lv = 1.0;
                GM_setValue('lv', lv);
                __nightingale_view_cover.style.opacity = lv;
                liangduui.style.display = "block";
                liangduuitz.style.height = (100 - (lv * 100)) + "%";
                window.clearTimeout(timer);
                timer = setTimeout(function () {
                    liangduui.style.display = "none";
                }, 2000);
            } else if (event.altKey && event.which == 38) {
                var lv = parseFloat(GM_getValue("lv"));
                lv -= 0.02;
                if (lv < 0) lv = 0;
                GM_setValue("lv", lv);
                __nightingale_view_cover.style.opacity = lv;
                liangduui.style.display = "block";
                liangduuitz.style.height = (100 - (lv * 100)) + "%";
                window.clearTimeout(timer);
                timer = setTimeout(function () {
                    liangduui.style.display = "none";
                }, 2000);
            } else if (event.ctrlKey && event.altKey && event.which == 83) {
                liangduuitz.style.height = (100 - (GM_getValue("lv") * 100)) + "%"
                liangduui.style.display = "block";
            } else if (event.shiftKey) {
                shift_downorup = true;
            }
        });

        document.addEventListener('keydown', function (event) {
            if (event.shiftKey) {
                shift_downorup = false;
            }
        });

        document.addEventListener('visibilitychange', function () {
            if (document.visibilityState == 'hidden') { //状态判断

            } else {
                var lv = parseFloat(GM_getValue("lv"));
                if (document.querySelector("#__nightingale_view_cover") == null) {
                    insertHTML(GM_getValue("lv"));
                }
                GM_setValue("lv", lv);
                document.querySelector("#__nightingale_view_cover").style.opacity = lv
            }
        });

        document.body.addEventListener('click', function () {
            liangduui.style.display = "none";
            mousemove = false;
        });

        // window.addEventListener("storage", function(event) {
        //     console.log(event.key + '=' +event.newValue);
        // });

        setTimeout(insertHTML(GM_getValue("lv")), 300);
    }

    // Your code here...
})();