// ==UserScript==
// @name ScrollAll
// @version 0.4
// @namespace http://zij.habrahabr.ru
// @description ,
// @author ZIJ
// @include http://www.google.com/reader/*
// @include https://www.google.com/reader/*
// ==/UserScript==
// <>
var maxScrolls = 4 // " ",
var hideTime = 4000 // , ms
var checkInterval = 2000 // DOM, ms
// </>
var DOMModified = false
var scrollCount = 0
var lastScrollTop = -1
var lastScrollTime = 0
document .addEventListener( "DOMSubtreeModified" , function () { DOMModified = true }, false )
var I = setInterval(scan, checkInterval)
function scan() { //
if (DOMModified) {
DOMModified = false
for each (element in document .getElementsByTagName( "*" )) {
if (IsScrollable(element)) {
element.addEventListener( "DOMMouseScroll" , handleScroll, false )
}
}
}
}
function IsScrollable(element) { //
if (element.scrollHeight > element.clientHeight) {
with (window.getComputedStyle(element, null )) {
return (overflow == "scroll" ) || (overflow == "auto" )
}
} else return false
}
function handleScroll( event ) { // " "
if ( event .timeStamp != lastScrollTime) {
var newScrollTop = event .currentTarget.scrollTop
if (newScrollTop == lastScrollTop) {
scrollCount++
if (scrollCount >= maxScrolls) {
scrollCount = 0
hideScrollbars( event .currentTarget)
}
} else {
scrollCount = 0
lastScrollTop = newScrollTop
}
lastScrollTime = event .timeStamp
}
}
function hideScrollbars(element) { //
var prev = window.getComputedStyle(element, null ).overflow
element.style.overflow = "hidden"
setTimeout( function () { element.style.overflow = prev }, hideTime)
}
* This source code was highlighted with Source Code Highlighter .
Greasemonkeyはここからダウンロードできます。
スクリプトファイル名は.user.jsで終わる必要があります
スクリプトは、GreasemonkeyをオンにしてFFウィンドウにドラッグアンドドロップすることでインストールされます。その後、ページを更新する必要があります
UPD:ドキュメントの変更をより視覚的かつ正確に検証しました