Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

香炉峰の雪は簾を撥げて看る

ScrollCommand

Minibuffer Greasemonkey

更新しました。 ScrollCommand 0.0.2 - 枕を欹てて聴く
twwpを見たときにほしいと思ったので。
構想10分程度、実装1時間(いろいろ失敗したので)なので激しくしょぼいです。wrapScroll version 0.9.9 - wrapScroll JavaScript Libraryからヒントをもらい、prototypeなどを使ってなるべくGlobalにおかない、干渉しあわない感じで作りました。
なんかおかしいところ多いかも。あんまり適当なので、UserScript.orgにまだおいてません。もうちょっときちんとできたらおいておきます。
ScrollCommand

// ==UserScript==
// @name           ScrollCommand
// @namespace      http://d.hatena.ne.jp/Constellation/
// @description    Press j or k key , and scroll (in case that LDRize are not working on its page)
// @include        *
// @author         Constellation
// @version        0.0.1
// ==/UserScript==

if(!window.Minibuffer || !window.LDRize) return;
if(window.LDRize.getSiteinfo() != undefined) return;

var SCROLLHEIGHT = 100;

var Scroll = function(down){
  this.down = down;
  if(down){
    this.rest = SCROLLHEIGHT;
  } else {
    this.rest = -SCROLLHEIGHT;
  }
  this.executeScroll();
}

Scroll.prototype.executeScroll = function(){
  var self = this;
  this.scrollTimer = setInterval(function(){self.scrollTo.apply(self,[])}, 10);
}

Scroll.prototype.scrollTo = function(){
  var value = (this.rest / 5);
  if(this.down && value < 2) value = this.rest;
  if(!this.down && value > -2)value = this.rest;
  window.scrollBy(0, value);
  this.rest = this.rest - value;
  if(this.rest == 0) clearInterval(this.scrollTimer);
}

window.Minibuffer.addShortcutkey({
key:'j',
description: 'scrollcommand::next',
command: function(){
var s = new Scroll(true);
},
});

window.Minibuffer.addShortcutkey({
key:'k',
description: 'scrollcommand::prev',
command: function(){
var s = new Scroll(false);
},
});
Remove all ads