// ==UserScript== // @name 手机看图、小说适配 // @namespace http://tampermonkey.net/ // @version 9.500.3.5 // @description 页面旋转,自动滚动,图片集合 // @author You // @match *://*/* // @icon https://www.google.com/s2/favicons?sz=64&domain=pixabay.com // @grant unsafeWindow // @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js // @license MIT // @downloadURL none // ==/UserScript== $.noConflict(); jQuery.noConflict(); (function($) { 'use strict'; if (document.querySelector('.JqScroll')) { return; } var urlhost = location.host.replace(/^www[.]/, ""); var HDImg = 0; function clearBlank(urlB) { if (HDImg != 0) { urlB = urlB.replace(/(?<=[=])(thumbnail)$/, "normal") .replace(/(?<=[!])(thumbnail)$/, "webp") .replace(/(?<=[/])(thumb[/]|fill_w[0-9]{2,3}_h[0-9]{2,3}_g0_mark_)/g, "") .replace(/[.]jpgs(?=[.])/, "") .replace(/.{0,200}[=](?=http)|(?<=[=]http.{1,200}?)&.{0,100}/g, "") .replace(/(?<=[?&])(size=.{1,15}?|[wh]=[0-9]{2,3})(?=&|$)/g, "") .replace(/[^0-9A-Za-z][0-9]{2,3}(x|%2C|[,])[0-9]{2,3}(?=[^0-9A-Za-z]|$)/, ""); } return urlB; } function dqSelect(selectPath) { return document.querySelectorAll(selectPath); } function addStyle(styleStr) { var style_node = document.createElement('style'); style_node.type = 'text/css'; style_node.innerHTML = styleStr; document.getElementsByTagName('head').item(0).appendChild(style_node); } function overHide() { if (window.innerWidth > $(document.body).outerWidth() * 1.1) { addStyle( "body {" + "overflow-x: scroll !important;}" ); } } overHide(); addStyle( "html {" + "overflow: scroll !important;" + "scroll-behavior: auto !important;}" + "body {" + "height: auto !important;}" + "html,body {" + "position: relative !important;" + "overflow-wrap: break-word !important;}" ); var winWidth = window.innerWidth; var winHeight = window.innerHeight; var winW = winWidth > winHeight ? winHeight * 0.9 : winWidth; var width = winW * 0.125; var height = winW * 0.1; var top = (winHeight - height) * 0.5; var fontSz = winW * 0.036; addStyle( "html,body {" + "min-height: " + winHeight + "px !important;}" + "#Jscroll-ul {" + "display: block !important;" + "position: relative !important;" + "top: 0 !important;" + "left: 0 !important;" + "overflow: visible !important;" + "width: 100% !important;" + "height: auto !important;" + "z-index: 2147483646 !important;" + "margin: 0 !important;" + "border: 0 !important;" + "padding: 50px 0 700px 0 !important;" + "background-color: black !important;}" + "#Jscroll-ul *{" + "box-sizing: border-box !important;" + "padding: 0 !important;" + "margin: 0 !important;" + "position: static !important;" + "float: none !important;" + "border-radius: 0 !important;" + "height: auto !important;" + "opacity: 1 !important;" + "visibility: visible !important;" + "background-color: black !important;" + "background-image: none !important;}" + "#Jscroll-ul *::before,#Jscroll-ul *::after{" + "display: none !important;}" + "#Jscroll-ul img{" + "display: block;" + "object-fit: contain !important;" + "min-height:" + (winW * 0.13) + "px !important;" + "width: 100% !important;" + "border-bottom: 1px solid gray !important;}" + "#Jscroll-ul span,#Jscroll-ul a{" + "font-size:" + (winW * 0.045) + "px !important;" + "color: white;" + "word-wrap: break-word !important;" + "line-height: normal !important;}" + "#Jscroll-ul a:visited{" + "color: #741274;}" + "#Jscroll-ul a{" + "display: inline-block;" + "min-height:" + (winW * 0.13) + "px !important;" + "width: auto;" + "min-width: 25% !important;" + "max-width: 100% !important;" + "border: 1px solid red;" + "vertical-align: top !important;" + "text-decoration: none !important;}" + "#Jscroll-ul a.ulHasImg{" + "min-width: 95% !important;}" + ".JqScroll{" + "opacity: 0.6;" + "border-radius: 0px !important;" + "cursor: pointer !important;" + "z-index: 2147483647 !important;" + "padding: 0 !important;" + "font-weight: bold !important;" + "font-size: " + fontSz + "px !important;" + "line-height:12px !important;" + "border:2px solid white !important;" + "height:" + height + "px !important;" + "background-color:black !important;" + "color:white;" + "position:fixed !important;" + "width:" + width + "px !important;" + "left: 0%;" + "top: 0%;}" + ".word-text-big{" + "background-color: black !important;" + "color: white !important;" + "line-height: normal !important;" + "overflow-wrap: break-word !important;" + "height: auto !important;}" ); var jianG = winW * 0.1; var left2 = -0.125 * winW * 0.125; var left = winW * 0.125 + left2; var left3 = winW * 0.25 + left2; var sameCss = "margin-left:" + left + "px;"; var sameCss2 = "margin-left:" + left2 + "px;"; var sameCss3 = "margin-left:" + left3 + "px;"; var scrollNum = parseInt(winW * 0.15 / 10) * 10; var scrollJu = scrollNum * 2; var secZ = 1; function addInput(id, value, style) { var input_node = document.createElement('input'); input_node.type = "button"; input_node.setAttribute("class", "JqScroll"); input_node.setAttribute("id", id); input_node.setAttribute("value", value); input_node.setAttribute("style", style); $(dqSelect("html")).append(input_node); } addInput('Jscroll-rotate', 'R', sameCss + "px;margin-top:" + (top) + "px"); addInput('Jscroll-jian', '-', sameCss + "px;margin-top:" + (top - jianG) + "px"); addInput('Jscroll-jia', '+', sameCss + "px;margin-top:" + (top - 2 * jianG) + "px"); addInput('Jscroll-Ju', (scrollJu / scrollNum * 50), sameCss + "px;margin-top:" + (top - 3 * jianG) + "px"); addInput('Jscroll-sec', secZ, sameCss + "px;margin-top:" + (top - 4 * jianG) + "px"); addInput('Jscroll-down', "D", sameCss + "px;margin-top:" + (top - 5 * jianG) + "px"); addInput('Jscroll-del', 'X', sameCss2 + "px;margin-top:" + (top) + "px"); addInput('Jscroll-width', 'W', sameCss2 + "px;margin-top:" + (top - jianG) + "px"); addInput('Jscroll-pic', 'P', sameCss2 + "px;margin-top:" + (top - 2 * jianG) + "px"); addInput('Jscroll-xy', '▽', sameCss2 + "px;margin-top:" + (top - 3 * jianG) + "px"); addInput('Jscroll-up', '△', sameCss2 + "px;margin-top:" + (top - 4 * jianG) + "px"); addInput('Jscroll-picwh', '100', sameCss2 + "px;margin-top:" + (top - 5 * jianG) + "px"); addInput('Jscroll-HD', "H", sameCss3 + "px;margin-top:" + (top) + "px"); addInput('Jscroll-transform', "T", sameCss3 + "px;margin-top:" + (top - jianG) + "px"); var Dtransform = 0; $(dqSelect("html")).on('touchstart', '#Jscroll-transform', function() { Dtransform += 1; if (Dtransform % 2 != 0) { setTimeout(function() { addStyle( "body {" + "transform: rotate(0deg) !important;}" ); overHide(); }, 200); $(dqSelect("#Jscroll-transform")).css("color", "green"); } else { addStyle( "body {" + "transform: none !important;}" ); $(dqSelect("#Jscroll-transform")).css("color", "white"); } }); $(dqSelect("html")).on('touchstart', '#Jscroll-HD', function() { HDImg += 1; if (HDImg == 2) { HDImg = 0; $(dqSelect("#Jscroll-HD")).css("color", "white"); } else { $(dqSelect("#Jscroll-HD")).css("color", "green"); } if (picZ != 0) { picZ -= 1; $(dqSelect("#Jscroll-pic")).trigger("touchstart"); } }); var Drotate = 0; var xMove = 0; $(dqSelect("html")).on('touchstart', '#Jscroll-rotate', function() { Drotate += 1; if (Drotate % 2 != 0) { $(dqSelect("#Jscroll-rotate")).css("color", "green"); var wrap_rotate; var wrap_rotate_inner; if ($(dqSelect('#wrap_rotate')).length == 0) { wrap_rotate = $('
', { id: "wrap_rotate" }); wrap_rotate_inner = $('', { id: "wrap_rotate_inner" }); $(document.body).wrapInner(wrap_rotate_inner).wrapInner(wrap_rotate); } wrap_rotate = $(dqSelect('#wrap_rotate')); wrap_rotate_inner = $(dqSelect('#wrap_rotate_inner')); setTimeout(function() { wrap_rotate.attr('style', "display: block !important;" + "z-index: 2147483647!important;" + "position: relative !important;" + "overflow: visible !important;" + "height: " + (winHeight + 2) + "px !important;" + "width: auto !important;"); wrap_rotate_inner.attr('style', "display: block !important;" + "z-index: 2147483647!important;" + "position: relative !important;" + "left: -100% !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;" + "float: right !important;" + "width: " + winHeight + "px !important;"); xMove = 1; $(dqSelect("#wrap_rotate")).css({ "min-width": $(dqSelect("#wrap_rotate_inner")).outerHeight() + 1500, }); addStyle( "body {" + "overflow: visible scroll !important;}" ); window.scrollTo(0, 0); }, 200); } else { $(dqSelect("#Jscroll-rotate")).css("color", "white"); xMove = 0; setTimeout(function() { $(dqSelect('#wrap_rotate')).attr('style', "z-index: 2147483647!important;" + "position: relative !important;" + "display: block !important;"); $(dqSelect('#wrap_rotate_inner')).attr('style', "z-index: 2147483647!important;" + "position: relative !important;" + "display: block !important;"); overHide(); }, 200); } }); var widthN = 12; var fontZ; $(dqSelect("html")).on('touchstart', '#Jscroll-width', function() { function interFn() { $(dqSelect("p,strong,span,h1,h2,h3")).filter(function() { return !$(this).is(":has(a)") || $(this).clone().children().remove().end().text().replace(/\s/g, "").length > 30; }).not(".word-text-big").addClass("word-text-big"); $(dqSelect(":not(p,strong,span,h1,h2,h3)")).not(":has(li)").filter(function() { return $(this).clone().children().remove().end().text().replace(/\s/g, "").length > 100; }).not(".word-text-big").addClass("word-text-big"); $(dqSelect(".word-text-big")).css(wordCss); var textImg = $(dqSelect(".word-text-big")).has("em,img"); oldFSize = oldFSize == 0 && textImg.length > 0 ? textImg.first().find("em,img").first().width() : 0; var _scale = fSize != "inherit" && oldFSize != 0 ? parseInt(fSize / oldFSize * 100 * 1.1) / 100 : 1; textImg.find("em,img").css({ "transform": "scale(" + _scale + ")", "-webkit-transform": "scale(" + _scale + ")", "-moz-transform": "scale(" + _scale + ")", "margin": "0 " + (_scale * 9 - 9) + "px", "filter": "drop-shadow(0px 0px white)", "-webkit-filter": "drop-shadow(0px 0px white)", "-moz-filter": "drop-shadow(0px 0px white)", }); if (fSize == "inherit") { $(dqSelect(".word-text-big")).removeClass("word-text-big"); } } var fSize = widthN > 15 ? "inherit" : parseInt($(document).width() / widthN); var oldFSize = 0; var wordCss = { "font-size": fSize }; clearInterval(fontZ); interFn(); if (fSize != "inherit") { fontZ = setInterval(interFn, 4 * 1000); $(dqSelect("#Jscroll-width")).val(20 - widthN).css("color", "green"); } else { $(dqSelect("#Jscroll-width")).val("W").css("color", "white"); widthN = 10; } widthN += 2; }); $(dqSelect("html")).on('click', ".word-text-big", function(e) { if ($(this).parents(".word-text-big").length == 0) { var touchX = e.clientX; var touchY = e.clientY; var fontH = parseInt($(this).css("font-size")) * 1.4; var scrollH = 0.5; if (xMove == 1) { var _scrollH = (winWidth - fontH) * (touchX > winWidth * scrollH ? 1 : -1); $(dqSelect("body")).scrollLeft($(dqSelect("body")).scrollLeft() + _scrollH); } else { window.scrollBy(0, (winHeight - fontH) * (touchY > winHeight * scrollH ? 1 : -1)); } } }); var picwh = 100; $(dqSelect("html")).on('touchstart', "#Jscroll-picwh", function() { picwh += 200; $(dqSelect("#Jscroll-picwh")).val(picwh); $(dqSelect("#Jscroll-ul img")).each(function() { if (this.naturalWidth) { if (this.naturalWidth < picwh || this.naturalHeight < picwh) { $(this).hide(); } } else { $(this).hide(); } }); }); var timeout_8; $(dqSelect("html")).on('touchstart', '#Jscroll-picwh', function() { timeout_8 = setTimeout(function() { picwh = 100; $(dqSelect("#Jscroll-picwh")).val(picwh); $(dqSelect("#Jscroll-ul img")).show(); $(dqSelect("#Jscroll-ul img")).each(function() { if (this.naturalWidth) { if (this.naturalWidth < picwh || this.naturalHeight < picwh) { $(this).hide(); } } }); }, 500); }).on('touchend touchmove', '#Jscroll-picwh', function() { clearTimeout(timeout_8); }); $(dqSelect("html")).on('click', "#Jscroll-ul a", function() { if (Dscroll % 2 != 0) { $(dqSelect("#Jscroll-Ju")).trigger("touchstart"); } }); var widthZ; var picZ = 0; var downOnce = 0; $(dqSelect("html")).on('touchstart', "#Jscroll-pic", function() { if (downOnce == 0) { $(dqSelect("#Jscroll-xy")).trigger("touchstart"); setTimeout(function() { $(dqSelect("#Jscroll-xy")).trigger("touchstart"); }, 200); setTimeout(function() { getImgArr(); }, 300); downOnce += 1; } else { getImgArr(); } }); function getImgArr() { function interFn() { var newImgAr = []; var _text = $(document.body).clone().children("script").remove().end().text() .match(/http.{1,150}?[.](xbm|tif|pjp|svgz|jpg|jpeg|ico|tiff|gif|svg|jfif|webp|png|bmp|pjpeg|avif)/g); var lenImg = $(dqSelect("div,li,a,img,[poster]")).length; $(dqSelect("div,li,a,img,[poster]")).each(function(inum, dom) { var dataObj = []; var _img = $(this); if (!_img.parent().is("#Jscroll-ul") && !_img.parent().parent().is("#Jscroll-ul")) { var _backImg = _img.css("background-image").split(/"|["']/); if (picZ == 2 && inum == 0 && _text != null) { dataObj = dataObj.concat(_text); } if (!/^(asdcosplay)/.test(urlhost)) { if (HDImg == 0) { dataObj = dataObj.concat(Object.values(_img.data())); } else { Object.values(_img.data()).forEach(function(i) { if (typeof i == "object") { i = JSON.stringify(i); var iSplit = i.split(/"|["']/); if (iSplit.length > 1) { iSplit.forEach(function(j) { if (/^http/.test(j)) { dataObj.push(j); } else if (/[=]http/.test(j)) { var newJ = j.replace(/%2F/g, "/").replace("%3A", ":") .replace(/.{1,200}(?=http)/, "").replace(/&.{1,200}/, ""); dataObj.push(newJ); } }); } } else { dataObj.push(i); } }); } dataObj.push( _img.attr("poster") ? _img.attr("poster") : "", _backImg.length > 1 ? _backImg[1] : "" ); if (_img.is("img")) { $.each(_img[0].attributes, function(index, item) { if (!/srcset|style/.test(item.name)) { dataObj.push(item.value); } }); } } dataObj.push(_img.attr("src") ? _img.attr("src") : ""); dataObj = dataObj.filter(function(i) { return i != ""; }); var _imgsStr = ""; var _imgStr = ""; dataObj.forEach(function(i) { i = i.toString().trim(); if (/^[/A-Za-z]/.test(i) && /[=]|[.](xbm|tif|pjp|svgz|jpg|jpeg|ico|tiff|gif|svg|jfif|webp|png|bmp|pjpeg|avif)(?=[^A-Za-z]|$)/.test(i)) { var i_2 = i; i = clearBlank(i); var errorStr = i_2 != i ? "onerror=this.onerror=null;this.src='" + i_2 + "' " : ""; _imgStr = "