From 1c0a0d436e49ddbff91a8aecb213401bc7a5cbde Mon Sep 17 00:00:00 2001 From: anekos Date: Tue, 31 Mar 2009 13:21:50 +0000 Subject: フレームをもつバッファで働かない問題を修正 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@31743 d0d07461-0603-4401-acd4-de1884942a52 --- _smooziee.js | 70 +++++++++++++++++++++++++++++++----------------------------- 1 file changed, 36 insertions(+), 34 deletions(-) (limited to '_smooziee.js') diff --git a/_smooziee.js b/_smooziee.js index 00c0d3c..37c892b 100644 --- a/_smooziee.js +++ b/_smooziee.js @@ -1,9 +1,9 @@ // // _smooziee.js -// +// // LICENSE: {{{ // Copyright (c) 2009 snaka -// +// // distributable under the terms of an MIT-style license. // http://www.opensource.jp/licenses/mit-license.html // }}} @@ -15,26 +15,26 @@ var PLUGIN_INFO = At j,k key scrolling to be smooth. j,kキーでのスクロールをスムースに 2.0 - 2.0pre + 2.0 http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/_smooziee.js snaka MIT style license - 0.9 + 0.9.1 || - let g:smooziee_scroll_amount="300" - let g:smooziee_scroll_interval="10" - ||< + === Excample === + Set scroll amount is 300px and interval is 10ms. + >|| + let g:smooziee_scroll_amount="300" + let g:smooziee_scroll_interval="10" + ||< == API == >|| @@ -55,18 +55,18 @@ var PLUGIN_INFO = 普段のj,kキーのスクロールをLDRizeライクにスムースにします。 == グローバル変数 == - 以下の変数を.vimperatorrcなどで設定することで動作を調整することができます。 + 以下の変数を.vimperatorrcなどで設定することで動作を調整することができます。 :smooziee_scroll_amount: - 1回にスクロールする幅です(単位:ピクセル)。デフォルトは"400"です。 + 1回にスクロールする幅です(単位:ピクセル)。デフォルトは"400"です。 :smooziee_interval: スクロール時のアニメーションのインターバルです(単位:ミリ秒)。 - "1"以上の値を設定します。デフォルトは"20"です。 - === 設定例 === - スクロール量を300pxに、インターバルを10msに設定します。 - >|| - let g:smooziee_scroll_amount="300" - let g:smooziee_scroll_interval="10" - ||< + "1"以上の値を設定します。デフォルトは"20"です。 + === 設定例 === + スクロール量を300pxに、インターバルを10msに設定します。 + >|| + let g:smooziee_scroll_amount="300" + let g:smooziee_scroll_interval="10" + ||< == API == 他のキーにマップする場合やスクリプトから呼び出せるようAPIを用意してます。 @@ -92,27 +92,27 @@ let self = liberator.plugins.smooziee = (function(){ // Mappings {{{ mappings.addUserMap( - [modes.NORMAL], - ["j"], - "Smooth scroll down", - function(){ + [modes.NORMAL], + ["j"], + "Smooth scroll down", + function(){ self.smoothScrollBy(getScrollAmount()); } - ); + ); mappings.addUserMap( - [modes.NORMAL], - ["k"], - "Smooth scroll up", - function(){ + [modes.NORMAL], + ["k"], + "Smooth scroll up", + function(){ self.smoothScrollBy(getScrollAmount() * -1); } - ); + ); // }}} // PUBLIC {{{ var PUBLICS = { smoothScrollBy: function(moment) { - win = window.content.window.wrappedJSObject; - interval = window.eval(liberator.globalVariables.smooziee_scroll_interval) || 20; + win = findScrollableWindow(); + interval = window.eval(liberator.globalVariables.smooziee_scroll_interval) || 20; destY = win.scrollY + moment; clearTimeout(next); smoothScroll(moment); @@ -126,10 +126,12 @@ let self = liberator.plugins.smooziee = (function(){ var win; var interval; + var findScrollableWindow = liberator.eval('findScrollableWindow', buffer.scrollLines); + function getScrollAmount() window.eval(liberator.globalVariables.smooziee_scroll_amount) || 400; function smoothScroll(moment) { - if (moment > 0) + if (moment > 0) moment = Math.floor(moment / 2); else moment = Math.ceil(moment / 2); -- cgit v1.2.3