AutoScroll avec boutons tactiles pour mobiles et tablettes
当前为
// ==UserScript==
// @name AutoScroll Mobile
// @namespace https://greasyfork.org/users/1429467
// @description AutoScroll avec boutons tactiles pour mobiles et tablettes
// @include http*
// @version 1.2
// @author Lakfu sama
// @grant none
// ==/UserScript==
(function () {
'use strict';
let scrolling = false;
let speed = 50;
let scrollInterval;
function startScrolling() {
if (!scrolling) {
scrolling = true;
scrollInterval = setInterval(() => {
window.scrollBy(0, 5);
}, speed);
updateButtonState();
}
}
function stopScrolling() {
scrolling = false;
clearInterval(scrollInterval);
updateButtonState();
}
function toggleScrolling() {
scrolling ? stopScrolling() : startScrolling();
}
function increaseSpeed() {
if (speed > 10) {
speed -= 10;
restartScrolling();
}
}
function decreaseSpeed() {
speed += 10;
restartScrolling();
}
function restartScrolling() {
if (scrolling) {
stopScrolling();
startScrolling();
}
}
function scrollToTop() {
window.scrollTo({ top: 0, behavior: 'smooth' });
}
function scrollToBottom() {
window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
}
function updateButtonState() {
let button = document.getElementById('scroll-toggle');
if (scrolling) {
button.textContent = '⏸️ Stop';
button.style.backgroundColor = '#ff5555';
} else {
button.textContent = '▶️ Start';
button.style.backgroundColor = '#4CAF50';
}
}
// Supprimer d'abord les boutons existants pour éviter les doublons
function removeExistingButtons() {
document.querySelectorAll('.scroll-btn').forEach(btn => btn.remove());
}
// Création des boutons tactiles avec espacement uniforme
function createButton(id, text, onClick, bgColor, positionIndex) {
let button = document.createElement('button');
button.id = id;
button.textContent = text;
button.onclick = onClick;
button.style.position = 'fixed';
button.style.bottom = '5px'; // Le plus bas possible
button.style.right = (10 + positionIndex * 60) + 'px';
button.style.padding = '10px';
button.style.fontSize = '16px';
button.style.border = 'none';
button.style.borderRadius = '10px';
button.style.backgroundColor = bgColor;
button.style.color = 'white';
button.style.zIndex = '10000';
button.className = 'scroll-btn';
document.body.appendChild(button);
}
// Supprimer les boutons en double avant de les recréer
removeExistingButtons();
// Création des boutons avec espacement régulier
let buttons = [
{ id: 'scroll-toggle', text: '▶️ Start', action: toggleScrolling, color: '#4CAF50' },
{ id: 'scroll-up', text: '⬆️', action: scrollToTop, color: '#2196F3' },
{ id: 'scroll-down', text: '⬇️', action: scrollToBottom, color: '#2196F3' },
{ id: 'speed-up', text: '⏩+', action: increaseSpeed, color: '#FF9800' },
{ id: 'speed-down', text: '⏪-', action: decreaseSpeed, color: '#FF9800' }
];
buttons.forEach((btn, index) => {
createButton(btn.id, btn.text, btn.action, btn.color, index);
});
})();