HOME>WEBプログラム覚書>[jQuery]スクロールバーはもう古い。長いソースコードをスマートに表示できるjquery.stretchable.js

[jQuery]スクロールバーはもう古い。長いソースコードをスマートに表示できるjquery.stretchable.js

長いソースコードをブログとかに張り付けると出てくるスクロールバーって いまいち操作しずらいし、見た目も良くないですよね。

そんな不満を抱えて悶々としてる人はjquery.stretchable.jsを使ってみてはどうでしょう。

サンプル

右上の三角を押すと広がります。

javascript

  1. function Test(){
  2.     var li = document.getElementById("gEBTN").getElementsByTagName("li"); var result = document.getElementById("gEBTNresult");
  3.     for($i=0; $i<li.length; $i++){ result.innerHTML += "<li>" + li[$i].innerHTML + "<\/li>"; }
  4.  
  5. }
  6.  

ちょっとカスタマイズ

このサイトでは広げた時に影を付けるなどハイライト表示したかったので、下記の部分をちょっと変更してます。

javascript

  1. $mark = $("<div class='" + options.mark.classname + "' />").css(options.mark.css)
  2.     .attr("title", options.stretchTitle).on("click", function(e){
  3.         var $t = $(this), stretched = $t.data("stretched?"),
  4.             p = stretched ? ["-", options.stretchTitle] : ["+", options.shrinkTitle];
  5.         $t.data("stretched?", !stretched).attr("title", p[1]).prev().parent().andSelf()
  6.             .animate({ width: p[0] + "=" + options.width }, options.speed, options.easing);
  7.  
  8.         // 横に広がった時に、highlightを追加する。
  9.         $(e.target).closest("div." + options.wrapper.classname).toggleClass("highlight");
  10.     });
  11.  

jQuery1.7系を利用してるのでclick()からon()に変更して、jQueryのイベントオブジェクトを渡すようにしています。 そして横に広がった時に、一番外側にhighlightを付けるようにしています。

実行時は一番外側のdivにクラス名を付けるオプション wrapper classname を必ず指定するようにします。

javascript

  1. $('.hoge').stretchable({
  2.     wrapper: { classname: 'wrap-hoge' }
  3. });
  4.  

これでデフォルト時と横に広がった時で違うスタイルを設定することが出来ます。

CSS

  1. /* デフォルト */
  2. .wrap-hoge {
  3.  
  4. }
  5.  
  6. /* ハイライト */
  7. .wrap-hoge.highlight {
  8.     box-shadow: 0 0 5px #000000;
  9. }
  10.  

Chrome 16.0.912.75ではばっちり動いてますが、バージョンが0.0.1なのでもしかしたら不安定な部分があるかもしれません。

ちなみに三角のアイコンが微妙だよねと思っている方はオプションで変更できたりしますよ。 詳しいオプションとダウンロードは下記ページを参照してください。

開発者は日本の方なので日本語ドキュメントですヽ(゚∀゚)ノ

投稿日 2012年3月15日 01:34
カテゴリ JavaScript
タグ jQuery | プラグイン
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1286

コメント

作者のうりんです。ご紹介ありがとうございます。

コメントする
Name
Email Address
URL