// ==UserScript== // @name 手机看图、小说适配 // @namespace http://tampermonkey.net/ // @version 9.500.6.83 // @description 自动滚动,图片集合,页面旋转,字体放大,去除浮动广告,模拟点击 // @author You // @match *://*/* // @require https://cdn.bootcss.com/jquery/3.7.1/jquery.min.js // @run-at document-body // @grant none // @license MIT // @downloadURL none // ==/UserScript== this.$ = this.jQuery = jQuery.noConflict(true); (function($) { 'use strict'; if (document.querySelector('.Jq-autoScroll-btn')) { return; } var DSImg = 1; function dqSelect(selectPath) { return document.querySelectorAll(selectPath); } function addStyle(styleStr, stId = "") { var style_node = document.createElement('style'); style_node.type = 'text/css'; style_node.innerHTML = styleStr; if (stId != "") { style_node.id = stId; } $(dqSelect('head'))[0].append(style_node); } var winWidth = $(dqSelect("html")).width(), winProp = window.innerHeight / window.innerWidth, winHeight = winWidth * winProp; var winW = winWidth > winHeight ? winHeight * 0.9 : winWidth; var height = winW * 0.1, width = height; var top = (winHeight - height) * 0.5; addStyle( `html,body,#Jq-wrap_rotate_inner { overflow: visible !important; overflow-wrap: break-word !important; scroll-behavior: auto !important; filter: none !important; min-height:` + winHeight + `px !important;} #Jq-wrap_rotate_inner { margin: 0 !important; border: 0 !important; padding: 0; height: inherit !important;} #Jq-autoScroll-ul,#Jq-autoScroll-ul *:not(.JsUl-PageNext) { box-sizing: border-box !important; height: auto !important; margin: 0 !important; border-radius: 0 !important; float: none !important; opacity: 1 !important; overflow: visible !important; visibility: visible !important; background-color: black !important; filter: none !important; background-image: none !important;} #Jq-autoScroll-ul { display: block !important; width: 100% !important; position: relative !important; z-index: 2147483646 !important; border: 0 !important; padding:` + (0.2 * winHeight) + `px 0 ` + (0.5 * winHeight) + `px 0 !important; min-height:` + winHeight + `px !important;} #Jq-autoScroll-ul *:not(.JsUl-PageNext){ min-height:` + (winW * 0.13) + `px !important; padding: 0 !important; position: static !important;} #Jq-autoScroll-ul *::before,#Jq-autoScroll-ul *::after { display: none !important;} #Jq-autoScroll-ul img,#Jq-autoScroll-ul picture { display: inline-block; object-fit: contain !important; width: 100% !important;} #Jq-autoScroll-ul xmp,#Jq-autoScroll-ul a{ display: inline-block !important; font-size:` + (winW * 0.045) + `px !important; line-height: normal !important; color: white; vertical-align: top !important; overflow-wrap: break-word !important;} #Jq-autoScroll-ul a:visited{ color: #741274 !important;} #Jq-autoScroll-ul xmp { white-space:pre-wrap !important; white-space:-moz-pre-wrap !important; white-space:-pre-wrap !important; white-space:-o-pre-wrap !important; word-wrap:break-word !important; width: 86% !important;} #Jq-autoScroll-ul a{ width: 14% !important; text-align: center !important; border:` + (0.002 * winW) + `px solid red; text-decoration: none !important;} .Jq-autoScroll-btn { border-radius: 0 !important; cursor: pointer !important; z-index: 2147483647 !important; padding: 0 !important; border: 0 !important; font-weight: bold !important; font-size: ` + winW * 0.036 + `px !important; height:` + height + `px !important; color: white; filter: none !important; position: fixed !important; width:` + width + `px !important;} .JsUl-PageNext,.pagetual_pageBar { display: block !important; height: 0 !important; margin: 0 !important; border: 0 !important; padding: 0 !important; overflow: hidden !important;} .JsWord-TextBig { line-height: normal !important; filter: none !important; overflow-wrap: break-word !important;} .JsWord-TextBig:not(a,a *) { color: white !important; background-color: black !important;}` ); var jianG = height; var left = 0; var left2 = width + left; var left3 = width + left2; var sameCss = "left:" + left + "px;"; var sameCss2 = "left:" + left2 + "px;"; var sameCss3 = "left:" + left3 + "px;"; var scrollNum = parseInt(winW * 0.07); var scrollJu = 4; var picwh = 5; function addInput(id, value, style) { var input_node = document.createElement('input'); input_node.type = "button"; input_node.setAttribute("class", "Jq-autoScroll-btn"); input_node.setAttribute("id", id); input_node.setAttribute("value", value); input_node.setAttribute("style", style + ";background-color:black !important;"); $(dqSelect("html"))[0].append(input_node); } addInput('Jq-autoScroll-del', 'X', sameCss + "top:" + (top) + "px"); addInput('Jq-autoScroll-pic', 'P', sameCss + "top:" + (top - jianG) + "px"); addInput('Jq-autoScroll-picwh', picwh, sameCss + "top:" + (top - 2 * jianG) + "px"); addInput('Jq-autoScroll-DS', "S", sameCss + "top:" + (top - 3 * jianG) + "px"); addInput('Jq-autoScroll-next', "N", sameCss + "top:" + (top - 4 * jianG) + "px"); addInput('Jq-autoScroll-click', 'C', sameCss + "top:" + (top - 5 * jianG) + "px"); addInput('Jq-autoScroll-Ju', scrollJu, sameCss2 + "top:" + (top) + "px"); addInput('Jq-autoScroll-jian', '-', sameCss2 + "top:" + (top - jianG) + "px"); addInput('Jq-autoScroll-jia', '+', sameCss2 + "top:" + (top - 2 * jianG) + "px"); addInput('Jq-autoScroll-down', '▽', sameCss2 + "top:" + (top - 3 * jianG) + "px"); addInput('Jq-autoScroll-up', '△', sameCss2 + "top:" + (top - 4 * jianG) + "px"); addInput('Jq-autoScroll-scrollPH', "O", sameCss2 + "top:" + (top - 5 * jianG) + "px"); addInput('Jq-autoScroll-transform', "T", sameCss3 + "top:" + (top) + "px"); addInput('Jq-autoScroll-rotate', 'R', sameCss3 + "top:" + (top - jianG) + "px"); addInput('Jq-autoScroll-width', 'W', sameCss3 + "top:" + (top - 2 * jianG) + "px"); setTimeout(function() { $(dqSelect('.Jq-autoScroll-btn')).each(function() { var _this = $(this); var _clone = _this.clone().removeAttr("id") .css('margin-left', (winHeight * winProp - winWidth * 0.8) + "px"); _clone.on("scroll", function() { $(this).val(_this.val()).css("color", _this.css("color")); }).on("click", function() { _this.trigger("click"); $(dqSelect(".Jq-autoScroll-btn")).trigger("scroll"); }).appendTo($(dqSelect("html"))[0]); }); }, 100); var scrollPH = 0; $(dqSelect("html")).on('click', '#Jq-autoScroll-scrollPH', function() { scrollPH += 1; if (scrollPH % 2 != 0) { $(dqSelect("#Jq-autoScroll-scrollPH")).css("color", "green"); } else { $(dqSelect("#Jq-autoScroll-scrollPH")).css("color", "white"); } }); var _interval; $(dqSelect("html")).on('click', '#Jq-autoScroll-click', function() { var _this = $(this); clearInterval(_interval); _this.css("color", "white"); $(document).off("dblclick").on("dblclick", function(event) { var _target = $(event.target); $(document).off("dblclick"); _this.css("color", "green"); _interval = setInterval(function() { _target.trigger("click"); }, 500); }); setTimeout(function() { $(document).off("dblclick"); }, 3000); }); $(dqSelect("html")).on('click', '#Jq-autoScroll-next', function() { var _len = $(dqSelect(".JsUl-PageNext")).length; $(dqSelect(".JsUl-PageNext")).each(function(index, dom) { var offsetDiff = -0.5 * (xMove == 1 ? winWidth : winHeight); if (xMove == 1) { offsetDiff += $(this).offset().left - $(window).scrollLeft(); } else { offsetDiff += $(this).offset().top - $(window).scrollTop(); } if (offsetDiff > 1) { autoScrollBy(offsetDiff); $(dqSelect("#Jq-autoScroll-next")).val(index + 2); return false; } if (index == _len - 1) { _len = 0; } }); if (_len == 0) { var ul_height = $(dqSelect("#Jq-autoScroll-ul")).height() + $(dqSelect("#Jq-autoScroll-ul")).offset().top; if (getScrollLeft() + getScrollTop() < ul_height) { autoScrollTo(ul_height); } } }); function returnBody() { return $(dqSelect("html>*:not(head,body,.Jq-autoScroll-btn,#pagetual-picker),body>*:not(#Jq-wrap_rotate_inner,#pagetual-picker)")); } function wrapInDiv() { if ($(dqSelect("#Jq-wrap_rotate_inner")).length == 0) { $("
", { id: "Jq-wrap_rotate_inner" }).append(returnBody()).appendTo($(dqSelect("body"))[0]); setInterval(function() { $(dqSelect('#Jq-wrap_rotate_inner')).append(returnBody()); }, 4 * 1000); } } $(dqSelect("html")).on('click', '.Jq-autoScroll-btn', function() { wrapInDiv(); }); var Dtransform = 0; $(dqSelect("html")).on('click', '#Jq-autoScroll-transform', function() { Dtransform += 1; $(document.getElementById("#Jq-autoScroll-style_1")).remove(); if (Dtransform % 2 != 0) { addStyle( "html>* {" + "transform: translate(0%, 0%) !important;}" + "#Jq-wrap_rotate_inner {" + "padding-bottom:" + (winHeight * 0.5) + "px !important;}", "#Jq-autoScroll-style_1" ); $(dqSelect(":not(head *)")).filter(function() { return $(this).css("position") == "sticky"; }).css("position", "absolute"); $(dqSelect("#Jq-wrap_rotate_inner")).css("padding-top", (1.5 * winHeight) + "px"); autoScrollBy(1.5 * winHeight); $(dqSelect("#Jq-autoScroll-transform")).css("color", "green"); } else { $(dqSelect("#Jq-wrap_rotate_inner")).css("padding-top", "0"); autoScrollBy(-1.5 * winHeight); $(dqSelect("#Jq-autoScroll-transform")).css("color", "white"); } }); $(dqSelect("#Jq-autoScroll-DS")).css("color", "green"); $(dqSelect("html")).on('click', '#Jq-autoScroll-DS', function() { DSImg += 1; if (DSImg == 2) { DSImg = 0; $(dqSelect("#Jq-autoScroll-DS")).css("color", "white"); } else { $(dqSelect("#Jq-autoScroll-DS")).css("color", "green"); } if (picZ != 0) { picZ -= 1; $(dqSelect("#Jq-autoScroll-pic")).trigger("click"); } }); var Drotate = 0; var xMove = 0; $(dqSelect("html")).on('click', '#Jq-autoScroll-rotate', function() { Drotate += 1; if (Drotate % 2 != 0) { var _scrollTop = getScrollTop(); $(dqSelect("#Jq-autoScroll-rotate")).css("color", "green"); $(dqSelect("div")).filter(function() { return $(this).css("overflow-y") != "hidden" && $(this).css("overflow-x") == "hidden" && $(this).height() > 0.5 * winHeight; }).css("overflow-x", "scroll"); autoScrollTo(0); setTimeout(function() { $(dqSelect('#Jq-wrap_rotate_inner')).attr('style', "float: right !important;" + "position: relative !important;" + "left: -100% !important;" + "padding-bottom:" + (winHeight * winProp - 0.6 * winWidth) + "px !important;" + "transform: rotateZ(-90deg) !important;" + "transform-origin: 100% 0 !important;" + "-webkit-transform: rotateZ(-90deg) !important;" + "-webkit-transform-origin: 100% 0 !important;" + "-moz-transform: rotateZ(-90deg) !important;" + "-moz-transform-origin: 100% 0 !important;" + "width: " + winHeight + "px !important;" ); xMove = 1; autoScrollTo(_scrollTop * winProp); }, 100); } else { var _scrollLeft = getScrollLeft(); $(dqSelect("#Jq-autoScroll-rotate")).css("color", "white"); autoScrollTo(0); setTimeout(function() { $(dqSelect("#Jq-wrap_rotate_inner")).attr('style', ""); xMove = 0; autoScrollTo(_scrollLeft / winProp); }, 100); } }); function getScrollLeft() { return $(dqSelect("html")).scrollLeft() + $(dqSelect("body")).scrollLeft(); } function getScrollTop() { return $(dqSelect("html")).scrollTop() + $(dqSelect("body")).scrollTop(); } var pauseScroll = 0; var Dpause; $(dqSelect("#Jq-autoScroll-Ju,#Jq-autoScroll-down,#Jq-autoScroll-up")).addClass("Jq-autoScroll-move"); $(dqSelect("html")).on('click', "a,#Jq-autoScroll-down,#Jq-autoScroll-up", function() { if (Dscroll % 2 != 0) { $(dqSelect("#Jq-autoScroll-Ju")).trigger("click"); } setTimeout(function() { if (Dscroll % 2 != 0) { $(dqSelect("#Jq-autoScroll-Ju")).trigger("click"); } }, 300); }); function stopPause() { if (pauseScroll == 1) { clearTimeout(Dpause); Dpause = setTimeout(function() { pauseScroll = 0; if (Dscroll % 2 == 0) { $(dqSelect("#Jq-autoScroll-Ju")).trigger("click"); } }, 200); } } $(dqSelect("html")).on("touchstart", ":not(.Jq-autoScroll-move)", function() { if (Dscroll % 2 != 0) { $(dqSelect("#Jq-autoScroll-Ju")).trigger("click"); pauseScroll = 1; } }).on("touchend", function() { stopPause(); }); $(document).scroll(function() { stopPause(); }); function visibleDiv() { return $(dqSelect("div")).filter(function() { return $(this).css("overflow-y") != "hidden" && $(this).height() > 0.5 * winHeight; }); } function autoScrollBy(scrollBy_Ju, speed = 0) { if (scrollPH % 2 == 0) { if (xMove == 1) { $(dqSelect("html,body")).stop().animate({ scrollLeft: "+=" + scrollBy_Ju + "px" }, speed, "linear"); } else { $(dqSelect("html,body")).stop().animate({ scrollTop: "+=" + scrollBy_Ju + "px" }, speed, "linear"); } } else { visibleDiv().stop().animate({ scrollTop: "+=" + scrollBy_Ju + "px" }, speed, "linear"); } } function autoScrollTo(scrollTo_Ju, speed = 0) { if (scrollPH % 2 == 0) { if (xMove == 1) { $(dqSelect("html,body")).stop().animate({ scrollLeft: scrollTo_Ju }, speed, "linear"); } else { $(dqSelect("html,body")).stop().animate({ scrollTop: scrollTo_Ju }, speed, "linear"); } } else { visibleDiv().stop().animate({ scrollTop: scrollTo_Ju }, speed, "linear"); } } var widthN = 12; var fontZ, fSize; $(dqSelect("html")).on('click', '#Jq-autoScroll-width', function() { function interFn() { $(dqSelect(":not(.JsWord-TextBig,#Jq-autoScroll-ul,#Jq-autoScroll-ul *)")).filter(function() { var _textLen = $(this).clone().children().remove().end().text() .replace(/[^.…,。?!:;~~0-9一-龟A-Za-zA-Za-z]+/g, "").length; if (_textLen > 0) { return true; } else { return false; } }).addClass("JsWord-TextBig"); $(dqSelect(".JsWord-TextBig")).css(wordCss); var _scale = fSize != "inherit" ? parseInt(fSize / 23 * 100) / 100 : 1; var DShadow = "grayscale(100%) contrast(200%) brightness(1000%)"; $(dqSelect(".JsWord-TextBig")).has(">em:not(.JsWord-TextBig),>img").find("em:not(.JsWord-TextBig),img").css({ "transform": "scale(" + _scale + ")", "-webkit-transform": "scale(" + _scale + ")", "-moz-transform": "scale(" + _scale + ")", "margin": "0 " + (_scale * 9 - 9) + "px", "filter": DShadow, "-webkit-filter": DShadow, "-moz-filter": DShadow, }); if (fSize == "inherit") { $(dqSelect(".JsWord-TextBig")).removeClass("JsWord-TextBig"); } } fSize = widthN > 16 ? "inherit" : parseInt(winWidth / widthN); var wordCss = { "font-size": fSize }; clearInterval(fontZ); interFn(); if (fSize != "inherit") { fontZ = setInterval(interFn, 4 * 1000); $(dqSelect("#Jq-autoScroll-width")).val(20 - widthN).css("color", "green"); } else { $(dqSelect("#Jq-autoScroll-width")).val("W").css("color", "white"); widthN -= 9; } widthN += 3; }); $(dqSelect("html")).on('click', "#Jq-autoScroll-picwh", function() { if (picwh < 6) { picwh = 20 } else { picwh += 20; } if (picwh > 100) { picwh = 5; $(dqSelect("#Jq-autoScroll-ul img.JsUl-Imgloaded")).filter(function() { return this.naturalWidth >= picwh * 10 && this.naturalHeight >= picwh * 10; }).show(); } else { $(dqSelect("#Jq-autoScroll-ul img.JsUl-Imgloaded")).filter(function() { return this.naturalWidth < picwh * 10 || this.naturalHeight < picwh * 10; }).hide(); } $(dqSelect("#Jq-autoScroll-picwh")).val(picwh); }); var timeout_8; $(dqSelect("html")).on('touchstart', '#Jq-autoScroll-picwh', function() { timeout_8 = setTimeout(function() { picwh = 5; $(dqSelect("#Jq-autoScroll-picwh")).val(picwh); $(dqSelect("#Jq-autoScroll-ul img.JsUl-Imgloaded")).filter(function() { return this.naturalWidth >= picwh * 10 && this.naturalHeight >= picwh * 10; }).show(); }, 500); }).on('touchend', '#Jq-autoScroll-picwh', function() { clearTimeout(timeout_8); }); var timeout_1; $(dqSelect("html")).on('touchstart', '#Jq-autoScroll-pic', function() { timeout_1 = setTimeout(function() { if (picZ > 0) { picZ -= 1; getImgArr(); } }, 500); }).on('touchend', '#Jq-autoScroll-pic', function() { clearTimeout(timeout_1); }); var widthZ; var picZ = 0; var urlhost = location.protocol + location.host; $(dqSelect("html")).on('click', "#Jq-autoScroll-pic", function() { getImgArr(); }); function getImgArr() { function interFn() { var newImgAr = []; var _text = $(dqSelect("html")).clone().find("head,style,script,noscript").remove().end().text() .match(/http.{1,150}?[.](xbm|tif|pjp|svgz|jpg|jpeg|ico|tiff|gif|svg|jfif|webp|png|bmp|pjpeg|avif)/g); $(dqSelect(":not(html,head *,script,.JsPic-ImgSelected,picture *,#Jq-autoScroll-ul *)")).filter(function() { var _img = $(this); return _img.is("a,img,:has(img),.pagetual_pageBar") || _img.css("background-image").split(/"|[""'']/).length > 1; }).each(function(inum, dom) { var dataObj = []; var _img = $(this); _img.addClass("JsPic-ImgSelected"); if (_img.is(".pagetual_pageBar")) { newImgAr.push(""); } if (picZ == 2 && inum == 0 && _text != null) { dataObj = dataObj.concat(_text); } var _backImg = _img.css("background-image").split(/"|[""'']/); dataObj.push( _img.attr("src") ? _img.attr("src") : "", _backImg.length > 1 ? _backImg[1] : "" ); if (DSImg != 0) { var _attributes = []; var _data = Object.values(_img.data()); _attributes.push(_img[0].attributes); if (_img.is("picture")) { _img.children("img").each(function() { var _attrSrc = $(this).attr("src") ? $(this).attr("src") : ""; if (preArr.indexOf(_attrSrc) == -1) { preArr.push(_attrSrc); } _attributes.push($(this)[0].attributes); _data = _data.concat(Object.values($(this).data())); }); } _attributes.forEach(function(attrs) { $.each(attrs, function(index, item) { if (/^(onload|onerror)$/.test(item.name)) { var _isp = item.value.split(/"|[""'']/).filter(function(j) { return j.length > 9 && /^http/.test(j.trim()); }); dataObj = dataObj.concat(_isp); } else if (!/^(src|style|srcset|class|id|type|href|onclick)$|^data-|^:/.test(item.name)) { dataObj.push(item.value); } }); }); _data.forEach(function(i) { if (typeof i == "object") { var iSplit; try { iSplit = JSON.stringify(i); } catch (error) { iSplit = null; } if (iSplit != null) { var _isp_2 = iSplit.split(/"|[""'']/).filter(function(j) { return j.length > 9 && /^http/.test(j.trim()); }); dataObj = dataObj.concat(_isp_2); } } else { dataObj.push(i); } }); } dataObj = Array.from(new Set(dataObj)); var _imgsStr = ""; var _imgStr = ""; var _srcset = ""; if (_img.attr("srcset")) { _srcset = "srcset='" + _img.attr("srcset") + "' "; } dataObj.forEach(function(i) { if (typeof i != "string") { return } i = i.trim(); if (!(/^[a-z/]/.test(i) && /[.?/]/.test(i))) { return } if (preArr.indexOf(i) == -1) { preArr.push(i); _imgStr = $("