您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
jump to indicate page
// ==UserScript== // @name wnacg jump // @namespace http://tampermonkey.net/ // @version 1.0 // @description jump to indicate page // @author charles // @match http://www.wnacg.com/photos-slide-aid-*.html // @icon https://www.google.com/s2/favicons?domain=wnacg.com // @run-at document-body // @grant none // ==/UserScript== const select = document.createElement("select"); select.style.position = "fixed"; select.style.top = "50%"; select.style.left = "10px"; select.style.height = "30px" $("body").ready(() => { $("body").unbind("click"); } ) document.getElementsByTagName("body")[0].appendChild(select); let count = 0; let max = 0; let index = 0; let list = [] let optionList = [] window.onscroll = () => { let scrollTop = document.querySelector('html').scrollTop; if (optionList.length > index) { if (scrollTop <= optionList[index].offsetTop && index > 0) { index = index - 1; select.value = list[index]; // document.querySelector("select").value = list[index] } else if (optionList.length > index + 1) { if (scrollTop >= optionList[index + 1].offsetTop) { index = index + 1; select.value = list[index]; // document.querySelector("select").value = list[index] } } } } const observer = new MutationObserver(function (mutations_list) { mutations_list.forEach(function (mutation) { mutation.addedNodes.forEach(function (added_node) { if (added_node.nodeName === "DIV") { if (count === 0) { const span = document.querySelector("#img_list").querySelector("div").querySelector("span").innerText; max = Number(span.split('/')[1]); } count = count + 1; const img = added_node.querySelector("img"); const timer = setInterval(() => { if (img.complete) { clearInterval(timer) let option = document.createElement("option"); option.innerText = count + "/" + max; list.push(count + "/" + max); select.appendChild(option); optionList.push(added_node) option.onclick = (e) => { e.preventDefault(); document.querySelector("html").scrollTop = added_node.offsetTop; $("body").focus() // window.scrollTo(0, Number(rect.top)) } option.onmousedown = (e) => { e.preventDefault(); } } }, 50) if (count === max) { observer.disconnect(); } } }); }); }); observer.observe(document.querySelector("#img_list"), {subtree: false, childList: true});