當頁面滾動到底部時,自動詢問是否點選下一章按鈕
当前为
// ==UserScript==
// @name 嗨皮 - 觸控左側點選下一章 for 手機
// @namespace https://www.youtube.com/c/ScottDoha
// @version 0.1
// @description 當頁面滾動到底部時,自動詢問是否點選下一章按鈕
// @author Scott
// @match https://m.happymh.com/reads/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
var isRunning = true; // 默認開啟
var toggleButton = document.createElement('button');
toggleButton.innerText = '自動中'; // 默認文字為“自動中”
toggleButton.style.position = 'fixed';
toggleButton.style.bottom = '20px';
toggleButton.style.right = '0px'; // 修改為右邊距0px
toggleButton.style.zIndex = '9999';
toggleButton.style.opacity = '0.5'; // 默認透明度為50%
toggleButton.style.transition = 'all 0.3s ease';
toggleButton.style.transform = 'translateX(0)'; // 默認不移動
toggleButton.onclick = function() {
isRunning = !isRunning;
if (isRunning) {
toggleButton.innerText = '自動中'; // 開啟時文字為"自動中"
toggleButton.style.transform = 'translateX(0)'; // 向右移動
} else {
toggleButton.innerText = '停止中'; // 停止時文字為"停止中"
toggleButton.style.transform = 'translateX(0)'; // 不移動,保持在右下角
}
};
document.body.appendChild(toggleButton);
window.addEventListener('scroll', function() {
if (isRunning) {
var endMarker = document.querySelector('.jss19'); // 結束標記元素
if (endMarker) {
var markerRect = endMarker.getBoundingClientRect();
var viewportHeight = window.innerHeight || document.documentElement.clientHeight;
// 檢查是否拖曳到特定元素位置
if (markerRect.top <= viewportHeight) {
var nextChapterButton = document.querySelector('.MuiButton-containedPrimary');
if (nextChapterButton) {
nextChapterButton.removeAttribute('aria-disabled'); // 移除停用屬性
nextChapterButton.click();
}
}
}
}
});
// 監聽觸摸事件
document.addEventListener('touchstart', function(event) {
var touchX = event.touches[0].clientX; // 獲取觸摸點的X坐標
var screenWidth = window.innerWidth; // 獲取螢幕寬度
// 如果觸摸點在螢幕左半部分
if (touchX < screenWidth / 2) {
var nextChapterButton = document.querySelector('.MuiButton-containedPrimary');
if (nextChapterButton && isRunning) {
nextChapterButton.removeAttribute('aria-disabled'); // 移除停用屬性
nextChapterButton.click();
}
}
});
})();