Auto Scroll Pages (double click / ctrl+arrow)
目前為
// ==UserScript==
// @name Auto Scroll
// @description Auto Scroll Pages (double click / ctrl+arrow)
// @include *
// @version 0.1
// @author Erimus
// @grant none
// @namespace https://greasyfork.org/users/46393
// ==/UserScript==
(function(document) {
// speed controlled by the following 2 variables
let scroll_interval = 15, // every xx ms
scroll_distance = 1 // move xx pixel
let scrolling = false, // status
auto_scroll // scroll function
// main function
let toggle_scroll = function(dire) {
scrolling = !scrolling
if (dire != 'up') dire = 'down' // defualt direction
if (scrolling) {
console.log('Start scroll', dire)
dire = { 'up': -1, 'down': 1 } [dire]
auto_scroll = setInterval(function() {
document.documentElement.scrollTop += (dire * scroll_distance)
}, scroll_interval)
} else {
console.log('Stop scroll')
clearInterval(auto_scroll)
}
}
// toogle scrolling by double click
document.body.addEventListener('dblclick', toggle_scroll)
// toogle scrolling by hotkey
// https://www.w3.org/2002/09/tests/keys.html
document.onkeydown = function(e) {
let keyCode = e.keyCode || e.which || e.charCode
let ctrlKey = e.ctrlKey || e.metaKey
if (ctrlKey && keyCode == 40) {
console.log('Press Ctrl + Down arrow')
toggle_scroll()
}
else if (ctrlKey && keyCode == 38) {
console.log('Press Ctrl + Up arrow')
toggle_scroll('up')
}
}
})(document)