您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
漫画柜双页浏览,全屏显示,从右到左显示。
当前为
// ==UserScript== // @name 漫画柜双页 // @namespace http://tampermonkey.net/ // @version 0.2 // @description 漫画柜双页浏览,全屏显示,从右到左显示。 // @author ChatGPT,akira0245 // @match https://www.manhuagui.com/comic/*/*.html // @icon https://www.google.com/s2/favicons?sz=64&domain=manhuagui.com // @grant GM_addStyle // @license GPLv3 // ==/UserScript== (function() { 'use strict'; var scrollFunction = function(e) { e = e || window.event; e.preventDefault && e.preventDefault(); //禁止浏览器默认事件 if (e.wheelDelta) { //判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) { //当滑轮向上滚动时 onePageUp(); } if (e.wheelDelta < 0) { //当滑轮向下滚动时 onePageDown(); } } else if (e.detail) { //Firefox滑轮事件 if (e.detail > 0) { //当滑轮向上滚动时 onePageUp(); } if (e.detail < 0) { //当滑轮向下滚动时 onePageDown(); } } } //给页面绑定滑轮滚动事件 if (document.addEventListener) { //firefox document.addEventListener('DOMMouseScroll', scrollFunction, false); } //滚动滑轮触发scrollFunction方法 //ie 谷歌 window.addEventListener('mousewheel', scrollFunction, { passive: false }); function onePageUp() { // Find all elements with the data-tag attribute equal to "mangaFile" var mangaFileElements = document.querySelectorAll('[data-tag="mangaFile"]'); // Find the index of the last mangaFile element that is above the current scroll position var lastMangaFileIndex = -1; var currentScrollPosition = window.pageYOffset; for (var i = mangaFileElements.length - 1; i >= 0; i--) { if (mangaFileElements[i].getBoundingClientRect().top < 0) { lastMangaFileIndex = i; break; } } // If there is a mangaFile element above the current position, scroll to its top position if (lastMangaFileIndex >= 0) { var targetElement = mangaFileElements[lastMangaFileIndex]; var targetPosition = targetElement.getBoundingClientRect().top + window.pageYOffset; window.scrollTo(0, targetPosition); }else{ window.scrollTo(0, 0); } } function onePageDown() { // Find all elements with the data-tag attribute equal to "mangaFile" var mangaFileElements = document.querySelectorAll('[data-tag="mangaFile"]'); // Find the index of the first mangaFile element that is below the current scroll position var nextMangaFileIndex = -1; var currentScrollPosition = window.pageYOffset; for (var i = 0; i < mangaFileElements.length; i++) { if (mangaFileElements[i].getBoundingClientRect().top > 1) { nextMangaFileIndex = i; break; } } // If there is another mangaFile element below the current position, scroll to its top position if (nextMangaFileIndex >= 0 && nextMangaFileIndex < mangaFileElements.length) { var targetElement = mangaFileElements[nextMangaFileIndex]; var targetPosition = targetElement.getBoundingClientRect().top + window.pageYOffset; window.scrollTo(0, targetPosition); }else{ window.scrollTo(0, 99999); } } // 绑定事件监听器 document.addEventListener('keydown', function(event) { switch (event.code) { // case 'ArrowRight': // goNumPage('next'); // break; // case 'ArrowLeft': // goNumPage('pre'); // break; // case 'KeyK': // onePageUp(); // break; // case 'KeyJ': // onePageDown(); // break; // case 'Semicolon': // switchParity(); // break; case 'NumpadEnter': document.querySelector( '.btn-red.nextC').click(); break; case 'NumpadDecimal': document.querySelector( '.btn-red.prevC').click(); break; default: console.log('key: ' + event.key + ' code: ' + event.code); } // event.stopPropagation(); //event.preventDefault && event.preventDefault(); //禁止浏览器默认事件 }); // 获取需要操作的元素 const mangaBox = document.getElementById('mangaBox'); const mangaMoreBox = document.getElementById('mangaMoreBox'); // 获取mangaBox中的元素 const childNodes = mangaBox.childNodes; // 将mangaBox中的元素插入到mangaMoreBox的第一个位置 mangaMoreBox.insertBefore(childNodes[0], mangaMoreBox.firstChild); // 删除mangaBox元素 mangaBox.parentNode.removeChild(mangaBox); document.addEventListener("mousedown", function(event) { console.log(event); const mangaLink = event.target.closest('[data-tag="mangaFile"]'); if (mangaLink) { event.preventDefault(); if(event.button === 2){ toggleFullScreen(); } else if (event.button === 0){ let mangaMoreBox = document.getElementById('mangaMoreBox'); let firstChild = mangaMoreBox.firstChild; let placeholder = document.querySelector(".placeholder"); if (!placeholder) { placeholder = firstChild.cloneNode(true); placeholder.classList.add("placeholder"); mangaMoreBox.insertBefore(placeholder, firstChild); } else { mangaMoreBox.removeChild(placeholder); } } } }); function toggleFullScreen() { if (!document.fullscreenElement) { document.documentElement.requestFullscreen(); } else { if (document.exitFullscreen) { document.exitFullscreen(); } } } { const mangaMoreBox = document.getElementById("mangaMoreBox"); // 获取id为mangaMoreBox的元素 let pageNumber = 2; // 定义起始页数为1 while (true) { // 无限循环直到不存在这个img url为止 const imgSrc = `https://us.hamreus.com/ps4/t/tb-7856/yblhl/%E7%9F%AD%E7%AF%87/[${pageNumber}]%20%E6%8B%B7%E8%B4%9D.jpg.webp?e=1679275775&m=-y96jJTzJ_HCyv_D_b9oyw`; const existingImg = mangaMoreBox.querySelector(`img[data-tag="mangaFile"]`); if (!existingImg) { // 如果不存在这个img url则跳出循环 break; } pageNumber++; // 页面数加1 const imgElement = document.createElement("img"); // 创建一个img元素 imgElement.setAttribute("src", imgSrc); // 设置img的src属性 imgElement.setAttribute("alt", ""); // 设置img的alt属性 imgElement.setAttribute("data-tag", "mangaFile"); // 设置img的data-tag属性 imgElement.style.display = "block"; // 设置img的display属性为block mangaMoreBox.appendChild(imgElement); // 把img元素添加到mangaMoreBox中 } } GM_addStyle(` #mangaMoreBox { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; flex-direction: row-reverse; /* width: 100vw */ } [data-tag="mangaFile"] { flex: ; object-fit: contain; max-width: 50%; height: 100vh; } .img_info { display: none; } .pr.tbCenter.cb { all: unset !important; /* 禁用所有CSS属性 */ } `); })();