scrollWithMouseMove

鼠标在滚动条上移动滚动网页

Versione datata 10/08/2016. Vedi la nuova versione l'ultima versione.

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name		scrollWithMouseMove
// @namespace	https://github.com/sakuyaa/gm_scripts
// @description	鼠标在滚动条上移动滚动网页
// @include		*
// @version		2016.8.9
// @note		修改自原脚本ScrollWithMouse.uc.js,来自Mozest.com社区
// @note		modify by sakuyaa
// @run-at		document-end
// ==/UserScript==
(function() {
	var scrolling = false;   //处于滚动条位置
	var scrollStartY = -1;   //移动起点高度
	function mouseScroll(event) {
		if (scrollStartY != -1) {
			//网页移动距离即为移动高度与网页可见区域高度的比例乘以网页正文全文高度
			document.documentElement.scrollTop += (event.screenY - scrollStartY) / document.documentElement.clientHeight * document.documentElement.scrollHeight;
		}
		scrollStartY = event.screenY;   //储存下次移动起点高度
	}

	setTimeout(() => {
		document.addEventListener('mouseover', e => {
			if (e.clientX >= document.documentElement.clientWidth && !scrolling) {   //处于滚动条位置
				scrolling = true;
				window.addEventListener('mousemove', mouseScroll, true)
			}
		}, false);
		document.addEventListener('mouseout', e => {   //移出滚动条
			if (scrolling) {
				scrolling = false;
				scrollStartY = -1;
				window.removeEventListener('mousemove', mouseScroll, true)
			}
		}, false);
	}, 1000);
})();