滑动器3

控制网页自动向上滑动的速度

目前为 2023-04-30 提交的版本。查看 最新版本

// ==UserScript==
// @name         滑动器3
// @namespace    your-namespace
// @version      1.0
// @description  控制网页自动向上滑动的速度
// @author       Your Name
// @match        http://www.htmanga3.top/*
// @grant        none
// ==/UserScript==

// 按下音量减键时滚动网页
document.addEventListener('keydown', function(event) {
  if (event.code === 'Minus') { // 检查是否按下音量减键
    const scrollInterval = localStorage.getItem('scrollInterval');
    clearInterval(scrollInterval); // 停止滚动(如果正在滚动)
    scrollPage(); // 滚动网页
  } else if (event.code === 'Equal') { // 检查是否按下音量加键
    stopScrolling(); // 停止滚动
  }
});

// 滚动网页函数
function scrollPage() {
  const [scrollTime, stopTime] = getScrollSettings();
  const scrollInterval = setInterval(function() {
    window.scrollBy(0, 10); // 向下滚动页面
  }, scrollTime);
  
  // 记录滚动定时器ID以便后续停止滚动
  localStorage.setItem('scrollInterval', scrollInterval);
}

// 停止滚动函数
function stopScrolling() {
  const scrollInterval = localStorage.getItem('scrollInterval');
  clearInterval(scrollInterval); // 停止滚动
}

// 获取滚动设置
function getScrollSettings() {
  let scrollTime = localStorage.getItem('scrollTime');
  let stopTime = localStorage.getItem('stopTime');
  
  // 如果localStorage中没有记录,则使用默认值
  if (!scrollTime || !stopTime) {
    scrollTime = 1000; // 默认滑动1秒
    stopTime = 1000; // 默认停止1秒
    localStorage.setItem('scrollTime', scrollTime);
    localStorage.setItem('stopTime', stopTime);
  }
  
  return [scrollTime, stopTime];
}

// 设置滚动设置
function setScrollSettings(scrollTime, stopTime) {
  localStorage.setItem('scrollTime', scrollTime);
  localStorage.setItem('stopTime', stopTime);
}

// 弹窗用来修改滑动和停止时间
function showSettingsDialog() {
  const [scrollTime, stopTime] = getScrollSettings();
  const input = prompt(`请输入滑动时间和停止时间(单位:毫秒),用逗号分隔(当前设置:滑动${scrollTime}毫秒,停止${stopTime}毫秒)`);
  if (input) {
    const [newScrollTime, newStopTime] = input.split(',');
    setScrollSettings(newScrollTime, newStopTime);
  }
}

// 按下音量减键弹出设置对话框
document.addEventListener('keydown', function(event) {
  if (event.code === 'Minus') {
    showSettingsDialog();
  }
});