素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

LDRizeみたいなSmoothScrollを実現する

LDRizeのようなSmoothScroll、いいなと思ったので作った。
window.pageXOffset,window.pageYOffsetに現在のスクロール位置が入ってることはLDRize for Greasemonkeyを見て知った。

var smoothScroll=function(px){
	setTimeout(
			(function(){
			 var i=0;
			 return function(){
			 window.scrollTo(window.pageXOffset,window.pageYOffset+px);
			 if(i<20){
			 i++;
			 setTimeout(arguments.callee,5);
			 }
			 }
			 })(),5)
}

var notScroll=['TEXTAREA','INPUT'];
document.addEventListener('keydown',
		function(e){
		if(notScroll.indexOf(e.target.tagName)==-1){
		e.which==74&&smoothScroll(10);
		e.which==75&&smoothScroll(-10);
		}
		},false);

テキストエリアやインプットボックス以外でJ、Kを押すとSmoothScroll発動。