// ==UserScript==
// @name 手机看图、小说适配
// @namespace http://tampermonkey.net/
// @version 9.434
// @description 页面旋转,自动滚动,图片集合
// @author You
// @match *://*/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=pixabay.com
// @grant none
// @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js
// @license MIT
// ==/UserScript==
(function() {
'use strict';
if ($('.JqScroll').length > 0) {
return
}
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.35 - winW * 0.05;
var fontSz = winW * 0.036;
var jianG = winW * 0.1;
var left2 = -0.125 * winW * 0.125;
var left = winW * 0.125 + left2;
var twoCss = "position:absolute; top:0; left: 0; overflow: visible; width: 100%!important; height: auto!important; z-index: 2147483646!important; margin: 0; border: 0; background-color: black;"
var aScss = "opacity: 0.7; border-radius: " + (width * 0.1) + "px;cursor: pointer; z-index: 2147483647!important; padding: 0!important; font-weight: bold; font-size: " + fontSz + "px !important;line-height:12px!important; border:2px solid white;height:" + height + "px;background-color:black;color:white;position:fixed;width:" + width + "px;left:0%; top: 15%; ";
var sameCss = aScss + "margin-left:" + left + "px;";
var sameCss2 = aScss + "margin-left:" + left2 + "px;";
var scrollJu = 270;
var secZ = 2;
$("body").append("<input type='button' class='JqScroll' id='Jscroll-jian' value='-' style='" + sameCss + "px;margin-top:" + (top - jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-rotate' value='R' style='" + sameCss + "px;margin-top:" + (top) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-jia' value='+' style='" + sameCss + "px;margin-top:" + (top - 2 * jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-Ju' value='" + scrollJu + "' style='" + sameCss + "px;margin-top:" + (top - 3 * jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-sec' value='" + secZ + "' style='" + sameCss + "px;margin-top:" + (top - 4 * jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-width' value='W' style='" + sameCss2 + "px;margin-top:" + (top - jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-pic' value='P' style='" + sameCss2 + "px;margin-top:" + (top - 2 * jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-xy' value='▽' style='" + sameCss2 + "px;margin-top:" + (top - 3 * jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-up' value='△' style='" + sameCss2 + "px;margin-top:" + (top - 4 * jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-picwh' value='100' style='" + sameCss2 + "px;margin-top:" + (top - 5 * jianG) + "px'>")
.append("<input type='button' class='JqScroll' id='Jscroll-del' value='X' style='" + sameCss2 + "px;margin-top:" + (top) + "px'>")
$("<style>" +
"html {" +
"overflow-x: scroll !important;" +
"scroll-behavior: auto !important;}" +
"body {" +
"overflow: visible !important;}" +
"html,body {" +
"height: auto !important;}" +
"#Jscroll-ul *{" +
"padding: 0 !important;" +
"margin: 0 !important;" +
"position: static !important;" +
"float: none !important;" +
"border-radius: 0 !important;" +
"height: auto !important;" +
"max-height:" + (winW * 6) + "px !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 p{" +
"display: block;}" +
"#Jscroll-ul p,#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% - 1px) !important;" +
"max-width: calc(100% - 1px) !important;" +
"border-top: 1px solid red !important;" +
"border-bottom: 1px solid red !important;" +
"border-right: 1px solid red !important;" +
"vertical-align:top;" +
"text-decoration: none !important;}" +
"</style>").appendTo('head');
var Drotate = 0;
var xMove = 0;
$("body").on('touchstart', '#Jscroll-rotate', function() {
Drotate += 1;
if (Drotate % 2 != 0) {
$("#Jscroll-rotate").css("color", "green");
var wrap_rotate;
var wrap_rotate_inner;
if ($('#wrap_rotate').length == 0) {
wrap_rotate = $('<div />', {
id: "wrap_rotate"
});
wrap_rotate_inner = $('<div />', {
id: "wrap_rotate_inner"
});
$('body').wrapInner(wrap_rotate_inner).wrapInner(wrap_rotate);
}
wrap_rotate = $('#wrap_rotate');
wrap_rotate_inner = $('#wrap_rotate_inner');
var window_width = winHeight;
window.scrollTo(0, 3 * window_width);
setTimeout(function() {
wrap_rotate.append($(".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%; -webkit-transform: rotateZ(-90deg); -webkit-transform-origin-x: 100%; -webkit-transform-origin-y: 0%; -moz-transform: rotateZ(-90deg); -moz-transform-origin-x: 100%; -moz-transform-origin-y: 0%;float: right; width: " + window_width + "px;");
xMove = 1;
$("#Jscroll-ul").css({
"padding": "0 0 1500px 0",
});
$("#wrap_rotate").css({
"min-width": $("#wrap_rotate_inner").outerHeight() + 1500,
});
window.scrollTo(0, 0);
}, 200);
} else {
$("#Jscroll-rotate").css("color", "white");
xMove = 0;
$("#Jscroll-ul").css({
"padding": "0 0 800px 0",
});
setTimeout(function() {
$('#wrap_rotate').attr('style', "");
$('#wrap_rotate_inner').attr('style', "");
}, 200);
}
});
var widthN = 12;
var fontZ;
$("body").on('touchstart', '#Jscroll-width', function() {
var fSize = parseInt($(document).width() / widthN);
$("#Jscroll-width").css("color", "green");
if (widthN > 17) {
fSize = "inherit";
$("#Jscroll-width").css("color", "white");
}
function interFn() {
$(":not(:has(div,li),word-text-big)").filter(function() {
return $(this).is('p') || $(this).is('strong') || $(this).clone().children().remove().end().text().length > 100;
}).css({
"background-color": "black",
"color": "white",
"font-size": fSize,
"line-height": "normal",
}).addClass("word-text-big");
}
clearInterval(fontZ);
interFn();
fontZ = setInterval(interFn, 4 * 1000);
$("#Jscroll-width").val(20 - widthN);
if (widthN == 18) {
$("#Jscroll-width").val("W");
}
if (fSize == "inherit") {
widthN = 10;
}
widthN += 2;
});
$("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 howH = 0.9;
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 picwh = 100;
$("body").on('touchstart', "#Jscroll-picwh", function() {
picwh += 100;
$("#Jscroll-picwh").val(picwh);
$("#Jscroll-ul img:visible").each(function() {
if (this.naturalWidth) {
if (this.naturalWidth < picwh || this.naturalHeight < picwh) {
$(this).hide();
}
}
});
});
var timeout_8;
$("body").on('touchstart', '#Jscroll-picwh', function() {
timeout_8 = setTimeout(function() {
picwh = 100;
$("#Jscroll-picwh").val(picwh);
$("#Jscroll-ul img").filter(function() {
return this.naturalWidth;
}).show();
$("#Jscroll-ul img:visible").each(function() {
if (this.naturalWidth) {
if (this.naturalWidth < picwh || this.naturalHeight < picwh) {
$(this).hide();
}
}
});
}, 500);
}).on('touchend touchmove', '#Jscroll-picwh', function() {
clearTimeout(timeout_8);
});
function clearBlank(urlB) {
return urlB.trim();
}
$("body").on('click', "#Jscroll-ul a", function() {
if (Dscroll % 2 != 0) {
Dscroll += 1;
$("#Jscroll-Ju").css("color", "white");
clearInterval(timeDown);
}
});
var widthZ;
var downImg;
var picZ = 0;
$("body").on('touchstart', "#Jscroll-pic", function() {
function interFn() {
var preArr = [];
var dataObj = {};
var newImgAr = [];
$("div,li,a,img,[srcset],[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") : "",
"_srcset": _img.attr("srcset") ? _img.attr("srcset") : "",
"_poster": _img.attr("poster") ? _img.attr("poster") : "",
"_backImg": _backImg.length > 1 ? _backImg[1] : "",
});
Object.assign(dataObj, _img.data());
var _imgStr = "";
$.each(dataObj, function(v, i) {
i = i.toString();
if (/[/?]/.test(i) && (!/[.](gif)([^a-z]|$)/i.test(i) || _img.outerHeight() > 180)) {
i = clearBlank(i);
_imgStr = "<img src='" + i + "'>";
if (picZ == 1 || picZ == 3) {
newImgAr.push(_imgStr);
}
if (picZ == 2 && preArr.indexOf(i) == -1) {
var _a = _img.closest("a");
var _pStr;
if (_img.attr("alt")) {
_pStr = "<p>" + _img.attr("alt") + "</p>";
} else {
_pStr = _img.attr("title") ? "<p>" + _img.attr("title") + "</p>" : "";
}
if (_a.length != 0) {
var _href = _a.attr("href") ? "href='" + _a.attr("href") + "'" : "";
var _onclick = _a.attr("onclick") ? _a.attr("onclick") : "";
newImgAr.push("<a " + _href + " onclick=" + _onclick + ">" + _imgStr + _pStr + "</a>");
preArr.push(i);
} else {
newImgAr.push(_imgStr, _pStr);
}
}
}
});
if (picZ == 2 && _img.is("a")) {
var _href = _img.attr("href") ? "href='" + _img.attr("href") + "'" : "";
var _onclick = _img.attr("onclick") ? _img.attr("onclick") : "";
var _text = _img.attr("title") ? _img.attr("title") : _img.text();
newImgAr.push("<a " + _href + " onclick=" + _onclick + ">" + _text + "</a>");
}
}
});
newImgAr = Array.from(new Set(newImgAr));
if (newImgAr.toString() != imgAr.toString()) {
var newArrEx = newImgAr.filter(function(n) {
return imgAr.indexOf(n) == -1
});
$("#Jscroll-ul").append(newArrEx);
var isSupportLoading = 'loading' in document.createElement('img');
if (isSupportLoading) {
$("#Jscroll-ul img").attr("loading", "lazy");
}
$("#Jscroll-ul>a:has(img)").css({
"width": "100%",
"display": "block",
});
$("#Jscroll-ul img").on('error', function() {
$(this).hide();
});
$("#Jscroll-ul img").on("load", function() {
var natuW = this.naturalWidth;
var natuH = this.naturalHeight;
if (natuW < picwh || natuH < picwh) {
$(this).hide();
} else if (picZ == 1 || picZ == 3) {
if (_numH < 6) {
_allH += natuW < natuH ? natuW : natuH;
_numH += 1;
}
if (_numH == 5) {
picwh = parseInt(_allH * 0.6 / _numH / 100) * 100;
if (picwh < 100) {
picwh = 100;
}
$("#Jscroll-picwh").val(picwh);
$("#Jscroll-ul img:visible").each(function() {
if (this.naturalWidth) {
if (this.naturalWidth < picwh || this.naturalHeight < picwh) {
$(this).hide();
}
}
});
}
}
});
imgAr = newImgAr;
}
}
clearInterval(widthZ);
clearInterval(downImg);
$("#Jscroll-ul").remove();
picZ += 1;
if (picZ < 4) {
if (xMove == 1) {
$("#wrap_rotate_inner").prepend("<div id='Jscroll-ul' style='" + twoCss + "'>");
$("#Jscroll-ul").css({
"padding": "0 0 1500px 0",
});
} else {
$("body").prepend("<div id='Jscroll-ul' style='" + twoCss + "'>");
$("#Jscroll-ul").css({
"padding": "0 0 800px 0",
});
}
picwh = 100;
var imgAr = [];
var _allH = 0;
var _numH = 0;
$("#Jscroll-picwh").val(picwh);
$("#Jscroll-pic").css("color", "green").val(picZ);
interFn()
widthZ = setInterval(interFn, 6000);
if (picZ == 3 && xMove == 0) {
downImg = setInterval(function() {
var ulTop = parseInt($("#Jscroll-ul").css("top"));
var newTop = parseInt($(document).height() - $("#Jscroll-ul").outerHeight()) - 1;
if (ulTop < newTop) {
$("#Jscroll-ul").css({
"top": newTop,
});
window.scrollBy(0, newTop - ulTop);
}
}, 1000);
}
} else {
$("#Jscroll-pic").css("color", "white").val("P");
picZ = 0;
}
});
$("body").on('click', "#Jscroll-ul>*:not(a)", function(e) {
var touchX = e.clientX;
var touchY = e.clientY;
var howH = 0.6;
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;
$("body").on('touchstart', '#Jscroll-pic', function() {
timeout_7 = setTimeout(function() {
clearInterval(widthZ);
$("#Jscroll-ul").remove();
$("#Jscroll-pic").css("color", "white").val("P");
picZ = 0;
}, 500);
}).on('touchend touchmove', '#Jscroll-pic', function() {
clearTimeout(timeout_7);
});
$("body").on('touchstart', '#Jscroll-sec', function() {
secZ -= 1;
if (secZ < 0) {
secZ = 3
}
if (secZ < 1) {
secZ = 0.6
}
$("#Jscroll-sec").val(secZ);
});
var Dxy = 0;
var pageX;
var pageY;
var timeHu;
$("body").on('touchstart', '#Jscroll-xy', function() {
var toH;
if (xMove != 1) {
toH = $(document).height();
} else {
toH = $("#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);
}
$("#Jscroll-xy").val("=");
$("#Jscroll-up").val("=");
timeHu = setTimeout(function() {
Dxy += 1;
$("#Jscroll-up").val("△");
$("#Jscroll-xy").val("▽");
}, 8 * 1000);
} else {
window.scrollTo(pageX, pageY);
$("#Jscroll-up").val("△");
$("#Jscroll-xy").val("▽");
}
});
$("body").on('touchstart', '#Jscroll-up', function() {
Dxy += 1;
clearTimeout(timeHu);
if (Dxy % 2 == 1) {
pageX = $(window).scrollLeft();
pageY = $(window).scrollTop();
window.scrollTo(0, 0);
$("#Jscroll-xy").val("=");
$("#Jscroll-up").val("=");
timeHu = setTimeout(function() {
Dxy += 1;
$("#Jscroll-up").val("△");
$("#Jscroll-xy").val("▽");
}, 8 * 1000);
} else {
window.scrollTo(pageX, pageY);
$("#Jscroll-up").val("△");
$("#Jscroll-xy").val("▽");
}
});
setTimeout(function() {
$(".JqScroll").hide();
$("#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;
$("body").on('touchstart', '#Jscroll-del', function() {
Dhide += 1;
if (Dhide % 2 != 0) {
$(".JqScroll").hide();
$("#Jscroll-del").show().css({
"opacity": "0.4",
"-webkit-transform": "scale(0.72)",
"-moz-transform": "scale(0.72)",
"transform": "scale(0.72)",
});
} else {
$(".JqScroll").show();
$("#Jscroll-del").css({
"opacity": "0.8",
"-webkit-transform": "scale(1)",
"-moz-transform": "scale(1)",
"transform": "scale(1)",
});
if (Dscroll % 2 != 0) {
Dscroll += 1;
$("#Jscroll-Ju").css("color", "white");
clearInterval(timeDown);
}
}
});
var timeout_2;
$("body").on('touchstart', '#Jscroll-del', function() {
timeout_2 = setTimeout(function() {
$(".JqScroll").hide();
$("#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;
$("body").on('touchstart', function() {
timeout_3 = setTimeout(function() {
$("#Jscroll-del").show();
}, 500);
}).on('touchend touchmove', function() {
clearTimeout(timeout_3);
});
$("body").on('touchstart', '#Jscroll-jia', function() {
scrollJu += 45;
$("#Jscroll-Ju").val(scrollJu);
});
$("body").on('touchstart', '#Jscroll-jian', function() {
scrollJu -= 45;
$("#Jscroll-Ju").val(scrollJu);
});
var timeout_4;
$("body").on('touchstart', '#Jscroll-jian', function() {
timeout_4 = setTimeout(function() {
scrollJu -= 45 * 9;
$("#Jscroll-Ju").val(scrollJu);
}, 500);
}).on('touchend touchmove', '#Jscroll-jian', function() {
clearTimeout(timeout_4);
});
var timeout_5;
$("body").on('touchstart', '#Jscroll-jia', function() {
timeout_5 = setTimeout(function() {
scrollJu += 45 * 9;
$("#Jscroll-Ju").val(scrollJu);
}, 500);
}).on('touchend touchmove', '#Jscroll-jia', function() {
clearTimeout(timeout_5);
});
var Dscroll = 0;
var timeDown;
var timeout_6;
$("body").on('touchstart', '#Jscroll-Ju', function() {
timeout_6 = setTimeout(function() {
scrollJu = 270;
$("#Jscroll-Ju").val(scrollJu);
Dscroll += 1;
if (Dscroll % 2 != 0) {
$("#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 {
$("#Jscroll-Ju").css("color", "white");
clearInterval(timeDown);
}
}, 500);
}).on('touchend touchmove', '#Jscroll-Ju', function() {
clearTimeout(timeout_6);
});
$("body").on('touchstart', '#Jscroll-Ju', function() {
Dscroll += 1;
if (Dscroll % 2 != 0) {
$("#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 {
$("#Jscroll-Ju").css("color", "white");
clearInterval(timeDown);
}
});
// Your code here...
})();