ラベル JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示

2013年12月6日金曜日

デフォルトのスクロールバーを非表示にしてかっこいいスクロールバーを使用できるようにするjQueryプラグイン

デフォルトのスクロールバーを非表示にしてかっこいいスクロールバーを使えるようにするjQueryプラグインのご紹介です。
実はあまりデフォルトのスクロールバーは好きではないので、何かいいものが無いかと探していた時に見つけました。
その名もperfect-scrollbarです。

プロジェクトページはこちら
Githubはこちら


使い方

まず、サイトからZIPファイルをダウンロードします。
ZIPファイルを解凍したら、srcディレクトリ内にある下記の3ファイルを使用します。

  • jquery.mousewheel.js
  • perfect-scrollbar.js
  • perfect-scrollbar.css

上記のファイルを使用したい箇所で読み込みます。

<link href="/css/perfect-scrollbar.css" rel="stylesheet" type="text/css">
<script src="/js/perfect-scrollbar.mousewheel.js"></script>
<script src="/js/perfect-scrollbar.js"></script>

perfect-scrollbarを呼び出します。

<script type="text/javascript">
jQuery(function() {
  jQuery("div#scroll").perfectScrollbar();
});
</script>

スクロールバーが必要なところに下記のようにCSSを設定します。
(必須のもののみ記述しています)

div#scroll 
{
    position : relative;
    overflow : hidden;
    width    : 200px;  // ココはお好みで
    height   : 200px;  // ココもお好みで
}

実装のサンプルはこんな感じになります。

<!DOCTYPE html>
<html>
<head>
<title>perfect-scrollbarの実装サンプル</title>
<link href="/css/perfect-scrollbar.css" rel="stylesheet" type="text/css">
<script src="/js/perfect-scrollbar.mousewheel.js"></script>
<script src="/js/perfect-scrollbar.js"></script>
<script type="text/javascript">
jQuery(function() {
  jQuery("div#scroll").perfectScrollbar();
});
</script>
<style type="text/css">
div#scroll
{
    position : relative;
    overflow : hidden;
    width    : 200px;
    height   : 200px;
}
</style>
</head>
<body>
<div id="scroll">
  <ul>
    <li>スクロール1</li>
    <li>スクロール2</li>
    <li>スクロール3</li>
    <li>スクロール4</li>
    <li>スクロール5</li>
    <li>スクロール6</li>
    <li>スクロール7</li>
    <li>スクロール8</li>
    <li>スクロール9</li>
  </ul>
</div>
</body>
</html>

これでデフォルトのスクロールバーのデザインに悩まされずにすみますね!

2013年11月27日水曜日

動的に共通のクラス名を持つ要素の高さを揃える

動的に横で配置されているボックスの高さを揃える際に、作成したコードをjQueryプラグイン化してみました。
下記がコードになります。

(function(jQuery) {
  jQuery.fn.height_trim = function(options) {
    var target = options['target'];
    var max_height = 0;

    jQuery(target).each(function() {
      jQuery(this).height("auto");
      var box_height = jQuery(this).height();
      if (max_height < box_height) {
        max_height = box_height;
      }
    });
    jQuery(target).height(max_height);
  }
})(jQuery);

処理内容としては最大の高さを保持する変数し、指定されたクラスが指定されているボックスの高さをループで比べていきループの処理終了後に、指定されているクラスの高さを変更します。
動的に変更するため、ループの最初に「jQuery(this).height("auto")」を指定することで全てのボックスの高さを初期化(自動)に合わせています。

使い方

<script type="text/javascript">
jQuery(function() {
  jQuery(document).height_trim({"target" : "クラス名セレクタ"});
});
</script>

2013年11月19日火曜日

SyntaxHighlighterをBloggerで使用する

SyntaxHighlighterサイトよりホスティングされているjsファイルやcssファイルを下記のようにBloggerのテンプレートにセットします。
※その他の言語にSyntaxHighlighterを使用する場合は、別途必要なファイルを追加してください。

<head>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'/>
<script type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = "http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf";
SyntaxHighlighter.all();
</script>
</head>

上記で実装は完了です。

SyntaxHighlihgterを記事で使用するには下記のような記述で使用できます。
エスケープ必要記述

<pre class="brush: plain">
エスケープした内容を記述
</pre>

エスケープ不要記述
<script type='syntaxhighlighter' class='brush: plain'><![CDATA[
内容を記述
]]></script>