// ==UserScript== // @name 手机看图、小说适配 // @namespace http://tampermonkey.net/ // @version 9.500.1.36 // @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[.]/, ""); //alert(urlhost) var orgStr = /^(missav|sifangmao)/.test(urlhost) ? /(?<=[=!])(thumbnail|webp)/ : /^(asdcosplay)/.test(urlhost) ? /[?].{0,300}/ : ""; var repStr = /^missav/.test(urlhost) ? "normal" : /^sifangmao/.test(urlhost) ? "watermark" : ""; function clearBlank(urlB) { return urlB.replace(orgStr, repStr).replace(/[-][0-9]{3,5}[x][0-9]{3,5}(?=[.])/, ""); } 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); } addStyle( "html {" + "scroll-behavior: auto !important;}" + "html,body {" + "overflow-x: hidden;" + "position: relative !important;" + "overflow-y: visible !important;" + "overflow-wrap: break-word !important;" + "height: auto !important;}"); var winWidth = window.innerWidth; var winHeight = window.innerHeight; var winW; if (winWidth > winHeight) { winW = winHeight * 0.9; } else { winW = winWidth; } var width = winW * 0.125; var height = winW * 0.1; var top = winHeight * 0.5 - winW * 0.05; var fontSz = winW * 0.036; addStyle( "html,body {" + "min-height: " + winHeight + "px;}" + "#Jscroll-ul {" + "display: block !important;" + "position: absolute !important;" + "top: 0;" + "left: 0 !important;" + "overflow: visible !important;" + "width: 100% !important;" + "height: auto !important;" + "z-index: 2147483646 !important;" + "margin: 0 !important;" + "border: 0 !important;" + "background-color: black !important;}" + "#Jscroll-ul *{" + "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;" + "object-fit: contain !important;" + "background-image: none !important;}" + "#Jscroll-ul *::before,#Jscroll-ul *::after{" + "display: none !important;}" + "#Jscroll-ul > img{" + "border-bottom: 1px solid gray !important;}" + "#Jscroll-ul img{" + "display: block;" + "min-height:" + (winW * 0.5) + "px !important;" + "width: 100% !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: calc(25% - 2px) !important;" + "max-width: calc(100% - 2px) !important;" + "border: 1px solid red;" + "vertical-align:top;" + "text-decoration: none !important;}" + ".JqScroll{" + "opacity: 0.7 !important;" + "border-radius: " + (width * 0.1) + "px !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% !important;" + "top: 0% !important;}" + ".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 sameCss = "margin-left:" + left + "px;"; var sameCss2 = "margin-left:" + left2 + "px;"; var scrollNum = parseInt( winW * 0.15 / 50 ) * 50; scrollNum = scrollNum < 50 ? 50 : scrollNum; var scrollJu = scrollNum * 4; var secZ = 2; 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); $(document.body).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, sameCss + "px;margin-top:" + (top - 3 * jianG) + "px"); addInput('Jscroll-sec', secZ, sameCss + "px;margin-top:" + (top - 4 * 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"); var Drotate = 0; var xMove = 0; $(document.body).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')); var window_width = winHeight; window.scrollTo(0, 3 * window_width); setTimeout(function() { wrap_rotate.append($(dqSelect(".JqScroll"))); wrap_rotate.attr('style', "z-index: 2147483647!important;" + "overflow: visible;" + "height: " + (window_width) + "px;" + "width: auto;"); wrap_rotate_inner.attr('style', "z-index: 2147483647!important;" + "position: relative;" + "left: -100%;" + "transform: rotateZ(-90deg);" + "transform-origin: 100% 0;" + "-webkit-transform: rotateZ(-90deg);" + "-webkit-transform-origin: 100% 0;" + "-moz-transform: rotateZ(-90deg);" + "-moz-transform-origin: 100% 0;" + "float: right;" + "width: " + window_width + "px;"); xMove = 1; $(dqSelect("html,body")).css({ "overflow-x": "visible", }); $(dqSelect("#Jscroll-ul")).css({ "padding": "0 0 1500px 0", }); $(dqSelect("#wrap_rotate")).css({ "min-width": $(dqSelect("#wrap_rotate_inner")).outerHeight() + 1500, }); window.scrollTo(0, 0); }, 200); } else { $(dqSelect("#Jscroll-rotate")).css("color", "white"); xMove = 0; $(dqSelect("html,body")).css({ "overflow-x": "hidden", }); $(dqSelect("#Jscroll-ul")).css({ "padding": "0 0 800px 0", }); setTimeout(function() { $(dqSelect('#wrap_rotate')).attr('style', ""); $(dqSelect('#wrap_rotate_inner')).attr('style', ""); }, 200); } }); var widthN = 12; var fontZ; $(document.body).on('touchstart', '#Jscroll-width', function() { var fSize = parseInt($(document).width() / widthN); $(dqSelect("#Jscroll-width")).css("color", "green"); if (widthN > 17) { fSize = "inherit"; $(dqSelect("#Jscroll-width")).css("color", "white"); } var oldFSize = 0; function interFn() { var wordCss = { "font-size": fSize, } $(dqSelect("p,strong,span,h1,h2,h3")).filter(function() { return !$(this).is(":has(a)") || $(this).clone().children().remove().end().text().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().length > 100; }).not(".word-text-big").addClass("word-text-big"); var textImg = $(dqSelect(".word-text-big")).has("em,img"); if (oldFSize == 0) { oldFSize = textImg.length > 0 ? textImg.first().find("em,img").first().width() : 0; } var _scale; if (fSize != "inherit" && oldFSize != 0) { _scale = parseInt(fSize / oldFSize * 100 * 1.1) / 100; } else { _scale = 1; } $(dqSelect(".word-text-big")).css(wordCss); textImg.find("em,img").each(function() { $(this).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)", }); }); } clearInterval(fontZ); interFn(); fontZ = setInterval(interFn, 4 * 1000); $(dqSelect("#Jscroll-width")).val(20 - widthN); if (widthN == 18) { $(dqSelect("#Jscroll-width")).val("W"); } if (fSize == "inherit") { widthN = 10; } widthN += 2; }); $(document.body).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) { window.scrollBy((winWidth - fontH) * (touchX > winWidth * scrollH ? 1 : -1), 0); } else { window.scrollBy(0, (winHeight - fontH) * (touchY > winHeight * scrollH ? 1 : -1)); } } }); var picwh = 100; $(document.body).on('touchstart', "#Jscroll-picwh", function() { picwh += 100; $(dqSelect("#Jscroll-picwh")).val(picwh); $(dqSelect("#Jscroll-ul img")).each(function() { if (this.naturalWidth) { if (this.naturalWidth < picwh || this.naturalHeight < picwh) { $(this).hide(); } } }); }); var timeout_8; $(document.body).on('touchstart', '#Jscroll-picwh', function() { timeout_8 = setTimeout(function() { picwh = 100; $(dqSelect("#Jscroll-picwh")).val(picwh); $(dqSelect("#Jscroll-ul img")).filter(function() { return this.naturalWidth; }).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); }); $(document.body).on('click', "#Jscroll-ul a", function() { if (Dscroll % 2 != 0) { Dscroll += 1; $(dqSelect("#Jscroll-Ju")).css("color", "white"); clearInterval(timeDown); } }); var widthZ; var downImg; var picZ = 0; $(document.body).on('touchstart', "#Jscroll-pic", function() { function interFn() { var dataObj = {}; var newImgAr = []; $(dqSelect("div,li,a,img,[poster]")).each(function() { var _img = $(this); if (!_img.parent().is("#Jscroll-ul") && !_img.parent().parent().is("#Jscroll-ul")) { var _backImg = _img.css("background-image").split(/"|"/); Object.assign(dataObj, { "_src": _img.attr("src") ? _img.attr("src") : "", "_zsrc": _img.attr("zsrc") ? _img.attr("zsrc") : "", "_file": _img.attr("file") ? _img.attr("file") : "", // "_srcset": _img.attr("srcset") ? _img.attr("srcset") : "", "_text": _img.text().length > 10 && _img.text().length < 200 ? _img.text() : "", "_poster": _img.attr("poster") ? _img.attr("poster") : "", "_backImg": _backImg.length > 1 ? _backImg[1] : "", }); Object.assign(dataObj, _img.data()); var _imgsStr = ""; var _imgStr = ""; $.each(dataObj, function(v, i) { i = i.toString().trim(); if (/[/?]/.test(i) && /^[/A-Za-z]/.test(i)) { i = clearBlank(i); _imgStr = ""; if (picZ == 2 || picZ == 3) { newImgAr.push(_imgStr); } if (picZ == 1 && preArr.indexOf(i) == -1) { _imgsStr += _imgStr; preArr.push(i); } } }); if (picZ == 1 && (_imgsStr != "" || _img.is("a"))) { var _pStr; _pStr = (_img.attr("alt") ? _img.attr("alt") : _img.attr("title") ? _img.attr("title") : _img.text().length > 0 ? _img.text() : "").substring(0, 66); if (_pStr != "") { _pStr = "" + _pStr + "" } var _a = _img.closest("a"); var _href = _a.attr("href") ? "href='" + _a.attr("href") + "'" : ""; var _onclick = _a.attr("onclick") ? _a.attr("onclick") : ""; if (_href == "" && _onclick == "") { _href = "style='border:1px solid gray;'"; } newImgAr.push("" + _imgsStr + _pStr + ""); } } }); newImgAr = Array.from(new Set(newImgAr)); if (newImgAr.toString() != imgAr.toString()) { var newArrEx = newImgAr.filter(function(n) { return imgAr.indexOf(n) == -1 }); $(dqSelect("#Jscroll-ul")).append(newArrEx); var isSupportLoading = 'loading' in document.createElement('img'); if (isSupportLoading) { $(dqSelect("#Jscroll-ul img")).attr({ "decoding": "async", "loading": "lazy", }); } $(dqSelect("#Jscroll-ul img")).on('error', function() { $(this).hide(); }); $(dqSelect("#Jscroll-ul img")).on("load", function() { var natuW = this.naturalWidth; var natuH = this.naturalHeight; if (natuW < picwh || natuH < picwh) { $(this).hide(); } else { _numH += 1; if (picZ != 1 && _numH < 9) { _allH += natuW < natuH ? natuW : natuH; if (_numH % 4 == 0) { picwh = parseInt(_allH * 0.5 / _numH / 100) * 100; picwh = picwh > 100 ? picwh : 100; $(dqSelect("#Jscroll-picwh")).val(picwh); $(dqSelect("#Jscroll-ul img")).each(function() { if (this.naturalWidth) { if (this.naturalWidth < picwh || this.naturalHeight < picwh) { $(this).hide(); } } }); } } if (picZ != 3 && _numH % 6 == 0 && $(document.body).height() < $(dqSelect("#Jscroll-ul")).outerHeight()) { $(document.body).css("min-height", $(dqSelect("#Jscroll-ul")).outerHeight() + "px"); } } }); imgAr = newImgAr; } } clearInterval(widthZ); clearInterval(downImg); $(dqSelect("#Jscroll-ul")).remove(); picZ += 1; if (picZ < 4) { if (xMove == 1) { $(dqSelect("#wrap_rotate_inner")).prepend("
"); $(dqSelect("#Jscroll-ul")).css({ "padding": "0 0 1500px 0", }); } else { $(document.body).prepend("
"); $(dqSelect("#Jscroll-ul")).css({ "padding": "0 0 800px 0", }); } picwh = 100; var imgAr = []; var preArr = []; var _allH = 0; var _numH = 0; $(dqSelect("#Jscroll-picwh")).val(picwh); $(dqSelect("#Jscroll-pic")).css("color", "green").val(picZ); interFn() widthZ = setInterval(interFn, 6000); if (picZ == 3 && xMove == 0) { downImg = setInterval(function() { var ulTop = parseInt($(dqSelect("#Jscroll-ul")).css("top")); var newTop = parseInt($(document).height() - $(dqSelect("#Jscroll-ul")).outerHeight()) - 2; if (ulTop < newTop) { $(dqSelect("#Jscroll-ul")).css({ "top": newTop, }); window.scrollBy(0, newTop - ulTop); } }, 1500); } } else { $(dqSelect("#Jscroll-pic")).css("color", "white").val("P"); picZ = 0; $(document.body).css({ "min-height": winHeight + "px", }); } }); $(document.body).on('click', "#Jscroll-ul>*:not(a)", function(e) { var touchX = e.clientX; var touchY = e.clientY; var howH = 0.5; var scrollH = 0.5; if (xMove == 1) { window.scrollBy(winWidth * howH * (touchX > winWidth * scrollH ? 1 : -1), 0); } else { window.scrollBy(0, winHeight * howH * (touchY > winHeight * scrollH ? 1 : -1)); } }); var timeout_7; $(document.body).on('touchstart', '#Jscroll-pic', function() { timeout_7 = setTimeout(function() { clearInterval(widthZ); $(dqSelect("#Jscroll-ul")).remove(); $(dqSelect("#Jscroll-pic")).css("color", "white").val("P"); picZ = 0; }, 500); }).on('touchend touchmove', '#Jscroll-pic', function() { clearTimeout(timeout_7); }); $(document.body).on('touchstart', '#Jscroll-sec', function() { secZ -= 1; if (secZ < 0) { secZ = 3 } if (secZ < 1) { secZ = 0.6 } $(dqSelect("#Jscroll-sec")).val(secZ); }); var Dxy = 0; var pageX; var pageY; var timeHu; $(document.body).on('touchstart', '#Jscroll-xy', function() { var toH; if (xMove != 1) { toH = $(document).height(); } else { toH = $(dqSelect("#wrap_rotate_inner")).outerHeight() - 250; } Dxy += 1; clearTimeout(timeHu); if (Dxy % 2 == 1) { pageX = $(window).scrollLeft(); pageY = $(window).scrollTop(); if (xMove == 1) { window.scrollTo(toH, 0); } else { window.scrollTo(0, toH); } $(dqSelect("#Jscroll-xy")).val("="); $(dqSelect("#Jscroll-up")).val("="); timeHu = setTimeout(function() { Dxy += 1; $(dqSelect("#Jscroll-up")).val("△"); $(dqSelect("#Jscroll-xy")).val("▽"); }, 8 * 1000); } else { window.scrollTo(pageX, pageY); $(dqSelect("#Jscroll-up")).val("△"); $(dqSelect("#Jscroll-xy")).val("▽"); } }); $(document.body).on('touchstart', '#Jscroll-up', function() { Dxy += 1; clearTimeout(timeHu); if (Dxy % 2 == 1) { pageX = $(window).scrollLeft(); pageY = $(window).scrollTop(); window.scrollTo(0, 0); $(dqSelect("#Jscroll-xy")).val("="); $(dqSelect("#Jscroll-up")).val("="); timeHu = setTimeout(function() { Dxy += 1; $(dqSelect("#Jscroll-up")).val("△"); $(dqSelect("#Jscroll-xy")).val("▽"); }, 8 * 1000); } else { window.scrollTo(pageX, pageY); $(dqSelect("#Jscroll-up")).val("△"); $(dqSelect("#Jscroll-xy")).val("▽"); } }); setTimeout(function() { $(dqSelect(".JqScroll")).hide(); $(dqSelect("#Jscroll-del")).show().css({ "opacity": "0.4", "-webkit-transform": "scale(0.72)", "-moz-transform": "scale(0.72)", "transform": "scale(0.72)", }); }, 100); var Dhide = 1; $(document.body).on('touchstart', '#Jscroll-del', function() { Dhide += 1; if (Dhide % 2 != 0) { $(dqSelect(".JqScroll")).hide(); $(dqSelect("#Jscroll-del")).show().css({ "opacity": "0.4", "-webkit-transform": "scale(0.72)", "-moz-transform": "scale(0.72)", "transform": "scale(0.72)", }); } else { $(dqSelect(".JqScroll")).show(); $(dqSelect("#Jscroll-del")).css({ "opacity": "0.8", "-webkit-transform": "scale(1)", "-moz-transform": "scale(1)", "transform": "scale(1)", }); if (Dscroll % 2 != 0) { Dscroll += 1; $(dqSelect("#Jscroll-Ju")).css("color", "white"); clearInterval(timeDown); } } }); var timeout_2; $(document.body).on('touchstart', '#Jscroll-del', function() { timeout_2 = setTimeout(function() { $(dqSelect(".JqScroll")).hide(); $(dqSelect("#Jscroll-del")).css({ "opacity": "0.4", "-webkit-transform": "scale(0.72)", "-moz-transform": "scale(0.72)", "transform": "scale(0.72)", }); if (Dhide % 2 == 0) { Dhide += 1; } }, 700); }).on('touchend touchmove', '#Jscroll-del', function() { clearTimeout(timeout_2); }); var timeout_3; $(document.body).on('touchstart', function() { timeout_3 = setTimeout(function() { $(dqSelect("#Jscroll-del")).show(); }, 500); }).on('touchend touchmove', function() { clearTimeout(timeout_3); }); $(document.body).on('touchstart', '#Jscroll-jia', function() { scrollJu += scrollNum; $(dqSelect("#Jscroll-Ju")).val(scrollJu); }); $(document.body).on('touchstart', '#Jscroll-jian', function() { scrollJu -= scrollNum; $(dqSelect("#Jscroll-Ju")).val(scrollJu); }); var timeout_4; $(document.body).on('touchstart', '#Jscroll-jian', function() { timeout_4 = setTimeout(function() { scrollJu -= scrollNum * 5; $(dqSelect("#Jscroll-Ju")).val(scrollJu); }, 500); }).on('touchend touchmove', '#Jscroll-jian', function() { clearTimeout(timeout_4); }); var timeout_5; $(document.body).on('touchstart', '#Jscroll-jia', function() { timeout_5 = setTimeout(function() { scrollJu += scrollNum * 5; $(dqSelect("#Jscroll-Ju")).val(scrollJu); }, 500); }).on('touchend touchmove', '#Jscroll-jia', function() { clearTimeout(timeout_5); }); var Dscroll = 0; var timeDown; var timeout_6; $(document.body).on('touchstart', '#Jscroll-Ju', function() { timeout_6 = setTimeout(function() { scrollJu = scrollNum * 4; $(dqSelect("#Jscroll-Ju")).val(scrollJu); Dscroll += 1; if (Dscroll % 2 != 0) { $(dqSelect("#Jscroll-Ju")).css("color", "green"); clearInterval(timeDown); timeDown = setInterval(function() { if (xMove == 1) { window.scrollBy(scrollJu, 1) window.scrollBy(0, -1); } else { window.scrollBy(0, scrollJu) } }, secZ * 1000); } else { $(dqSelect("#Jscroll-Ju")).css("color", "white"); clearInterval(timeDown); } }, 500); }).on('touchend touchmove', '#Jscroll-Ju', function() { clearTimeout(timeout_6); }); $(document.body).on('touchstart', '#Jscroll-Ju', function() { Dscroll += 1; if (Dscroll % 2 != 0) { $(dqSelect("#Jscroll-Ju")).css("color", "green"); clearInterval(timeDown); timeDown = setInterval(function() { if (xMove == 1) { window.scrollBy(scrollJu, 0); } else { window.scrollBy(0, scrollJu); } }, secZ * 1000); } else { $(dqSelect("#Jscroll-Ju")).css("color", "white"); clearInterval(timeDown); } }); // Your code here... })(jQuery);