wnacg-slide

为wnacg添加快捷下拉阅读按钮

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         wnacg-slide
// @namespace    npm/vite-plugin-monkey
// @version      0.1.0
// @author       hamasakin
// @description  为wnacg添加快捷下拉阅读按钮
// @license      MIT
// @icon         https://vitejs.dev/logo.svg
// @match        https://www.wnacg.com/*
// @grant        GM_addStyle
// ==/UserScript==

(t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const e=document.createElement("style");e.textContent=t,document.head.append(e)})(" .pic_box{position:releative}.slide-btn{position:absolute;bottom:6px;left:0;right:0;flex-direction:column;align-items:center;display:none;transition:all .3s ease}.pic_box:hover .slide-btn{display:flex;cursor:pointer}.slide-btn p{width:80%;background-color:#0006;color:#fff;font-size:16px;font-weight:600;text-align:center;line-height:26px;border-radius:12px}.back-btn{position:fixed;left:40px;bottom:40px;border:none;background-color:transparent}.back-btn:hover{cursor:pointer}.back-btn svg{width:34px;height:34px} ");

(function () {
  'use strict';

  const isSlidePage = () => /\/photos-slide-aid-\d+\.html/.test(window.location.pathname);
  const forwardComicHomePage = (comicId) => window.location.href = `/photos-index-aid-${comicId}`;
  const homeBtnSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#74C0FC" d="M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"/></svg>`;
  function createSlideBtn() {
    const slideBtnTemplate = `
    <div class="slide-btn">
      <p>slide view</p>
    </div>
  `;
    const slideBtn = new DOMParser().parseFromString(
      slideBtnTemplate,
      "text/html"
    );
    return slideBtn.querySelector(".slide-btn");
  }
  function createSlideLink(comicId) {
    const url = `/photos-slide-aid-${comicId}.html`;
    const link = document.createElement("a");
    link.href = url;
    link.target = "_blank";
    return link;
  }
  function addSlideBtns() {
    const comicBoxs = document.querySelectorAll(".pic_box");
    const slideBtn = createSlideBtn();
    comicBoxs.forEach((box) => {
      const comicId = box.querySelector("a").href.replace(/\D/g, "");
      const link = createSlideLink(comicId);
      link.append(slideBtn);
      box.append(link.cloneNode(true));
    });
  }
  function addComicHomeBtn() {
    if (isSlidePage()) {
      const homeBtn = document.createElement("button");
      homeBtn.innerHTML = homeBtnSvg;
      homeBtn.className = "back-btn";
      homeBtn.addEventListener("click", (e) => {
        e.stopPropagation();
        const comicId = window.location.pathname.replace(/\D+/g, "");
        forwardComicHomePage(comicId);
      });
      document.body.append(homeBtn);
    }
  }
  addSlideBtns();
  addComicHomeBtn();

})();