小さなスクロールバー jQuery プラグインを作成しました。それはかなり標準的な実装を持っています: $(selector).drollScroll({options});
、デフォルト値を完備しています。秘訣は、ユーザーがこれらのデフォルトを事前に設定できるようにして、大規模なサイト (私は大規模なサイト用にこれを開発しています) の場合、将来のユーザーが毎回パラメーターを指定せずに同じスクロールバーを簡単に取得できるようにすることです。 .
最初にjQueryオブジェクトをインスタンス化せずに、ユーザーがこれを実行できるようにしたいので、 $.drollScrollDefaults({options})
.
これまでのところ、私はこれを持っています:
(読書を楽しむための必需品のみに絞り込まれています)
(function($)
{
var defaults = {
content : ".drollScrollBowl",
scrollBoxClassName : "drollScrollShoal",
scrollbarClassName : "drollScrollPole",
thumbClassName : "drollScrollTrollThumb",
scrollbarOpacity : 1,
scrollbarFadeTime : 300,
scrollbarTimeToLive : 1000,
alwaysVisible : true,
autoFade : false,
overrideBoxStyling : false,
overrideBarStyling : false,
overrideThumbStyling : false,
scrollWidthConstant : false
};
$.drollScrollDefaults = function(options)
{
$.extend(defaults, options);
};
$.fn.drollScroll = function(options)
{
var opts;
return this.each(function()
{
// we want opts to be its own object in case someone edits it later
opts = $.extend({}, defaults, options);
$(this).data("drollScroll", {options : opts});
});
};
})(jQuery);
これで実際に動作しますが、この行は
$.drollScrollDefaults = function(options)
真剣にそれが行われるはずの方法ではありません。ハッキングされたように感じます。$ または何かの(私には完全に神秘的な)プロトタイプを使用する必要があるように、私はそれを間違っているに違いないと感じています。 これでしょうか?私はもう正しいですか?これを達成するための最良の方法は何ですか? こんなことしていいの!?