<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>技術ブログ &#124; 株式会社クラウディア &#187; jQuery</title>
	<atom:link href="https://cloudear.jp/blog/?cat=32&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://cloudear.jp/blog</link>
	<description>クラウド専門の業務システム・社内ツール開発</description>
	<lastBuildDate>Fri, 12 Nov 2021 05:00:35 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0.1</generator>
	<item>
		<title>jQuery でメニューにバーを追随させる</title>
		<link>https://cloudear.jp/blog/?p=1019</link>
		<comments>https://cloudear.jp/blog/?p=1019#comments</comments>
		<pubDate>Sun, 19 Apr 2015 06:50:08 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[デザイン]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=1019</guid>
		<description><![CDATA[みなさんこんにちは、 masa です。サイトのメインメニューというのはアイキャッチとともに非常に目立ち、ユーザーが最初に操作する可能性が高いパーツですよね。デザイナーのみなさんが個性を出しやすいと同時に、デザインに悩みが [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは、 masa です。サイトのメインメニューというのはアイキャッチとともに非常に目立ち、ユーザーが最初に操作する可能性が高いパーツですよね。デザイナーのみなさんが個性を出しやすいと同時に、デザインに悩みがちなメニューですが、今日はマウスホバー時にアンダーバーを追随させる方法をご紹介します。<br />
<span id="more-1019"></span></p>
<p>まずはこちらの <a href="https://cloudear.jp/sample/follow_bar.html" target="_blank"><span style="font-size: 14pt;"><strong>DEMO</strong></span></a> をご覧ください。<br />
<a href="https://cloudear.jp/sample/follow_bar.html" target="_blank"><img class="alignnone size-full wp-image-1037" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/follow_bar1.png" alt="follow_bar1" width="1351" height="63" /></a></p>
<p>マウスをホバーするとホームにいたバーが追いかけてくるメニューです。<br />
上記のものを作る際には HTML, CSS, jQuery を使います。</p>
<p><strong>(HTML)</strong></p>
<pre class="lang:default decode:true ">&lt;!DOCTYPE html&gt;
&lt;html lang="ja"&gt;
&lt;head&gt;
  &lt;meta charset="utf-8"&gt;
  &lt;link rel="stylesheet" type="text/css" href="../css/sample.css"&gt;
  &lt;script type="text/javascript" src="../js/jquery-1.11.1.js"&gt;&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
  &lt;div id="menu"&gt;                                                                                                                                                                                    
    &lt;div id="nav"&gt; // 以下ご自由にメニューを書き換えてください
      &lt;a href=""&gt;サービス&lt;/a&gt;                                                                                                                                                                        
      &lt;a href=""&gt;お問い合わせ&lt;/a&gt;                                                                                                                                                                    
      &lt;a href=""&gt;開発プロセス&lt;/a&gt;                                                                                                                                                                    
      &lt;a href=""&gt;技術ブログ&lt;/a&gt;                                                                                                                                                                      
      &lt;a href=""&gt;会社情報&lt;/a&gt;                                                                                                                                                                        
      &lt;a class="current" href=""&gt;ホーム&lt;/a&gt;                                                                                                                                                          
      &lt;span&gt;&lt;/span&gt;
    &lt;/div&gt;&lt;!-- nav --&gt;
  &lt;/div&gt;&lt;!-- menu --&gt;

&lt;script&gt;
$(function() {
        $('#nav span').css({ 
                width: $('#nav .current').outerWidth(),
                left: $('#nav .current').position().left 
        });
        $('#nav a').mouseover(function(){
                $('#nav span').stop().animate({
                        width: $(this).outerWidth(),
                        left: $(this).position().left}
                ,{ duration: 170, easing: 'linear', });
                //上記でバーの移動スピードとイージング方法を設定できます
        });
});
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>
<p><strong>(CSS)</strong></p>
<pre class="lang:default decode:true ">#menu {
    font-size: 16px;
    width: 100%;
    padding: 12px 0;
    text-align: center;
    background: #2C3E50;
}

#menu a {
    margin: 0 4% 0 0;
    text-decoration: none;
    color: white;
}

#menu a:visited {
    text-decoration: none;
    color: white;
}

#menu a:hover {
    text-decoration: none;
}

#nav {
    position: relative;
}

#nav a {
    padding:10px;
}

#nav span {
    background: #FD9802; //バーの色を設定できます
    height: 2px; //バーの太さを設定できます
    display: block;
    position: absolute;
    width: 30px;
    left: 0
}

#nav a:hover {
    cursor: pointer;
}</pre>
<p>これだけです。バーの移動スピードが遅すぎるとユーザーがストレスを感じる可能性もありますので、個人的には 170ms あたりがオススメです。CSS デザインを変えてオリジナルのメニューを作成してみてくださいね。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=1019</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>「Handsontable」で Web上にテーブルを作成</title>
		<link>https://cloudear.jp/blog/?p=483</link>
		<comments>https://cloudear.jp/blog/?p=483#comments</comments>
		<pubDate>Sun, 25 Jan 2015 05:31:21 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[フロントエンド]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=483</guid>
		<description><![CDATA[みなさんは Webアプリケーション上のエディタって使っていますか？今日は Excel ライクなエディタ『Handsontable （ハンズオンテーブル）』をご紹介します。jQuery プラグインなので導入も簡単ですよ！  [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんは Webアプリケーション上のエディタって使っていますか？今日は Excel ライクなエディタ『Handsontable （ハンズオンテーブル）』をご紹介します。jQuery プラグインなので導入も簡単ですよ！<br />
<span id="more-483"></span><a href="http://handsontable.com/index.html"><br />
</a><img class="alignnone wp-image-539 size-full" src="https://cloudear.jp/blog/wp-content/uploads/2015/01/example_hot.png" alt="example_hot" width="376" height="201" /><a href="http://handsontable.com/index.html" target="_blank"><br />
</a>まずは Handsontable <a title="Handsontable demo page" href="http://handsontable.com/examples.html#fndtn-basic" target="_blank">公式デモ</a>を 開いてみてください。エクセルのような表がありますので、セルをクリックするとリアルタイムに編集できます。例えばこれでエクセルを読み込み、Ajax で通信すれば、Webアプリケーション内でユーザーにリアルタイム編集させることも出来ちゃうわけです。すごい！</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 14pt;"> <strong>jQuery プラグイン Handsontable の導入方法</strong></span></p>
<p>まずは <a href="https://github.com/handsontable/handsontable/tree/master/dist" target="_blank">GitHub</a> から 『handsontable.full.js』と『handsontable.full.css』をダウンロードします。次に、使いたい html ファイルのヘッダで上記二つのファイルを読み込みます。</p>
<pre class="lang:default decode:true">&lt;!DOCTYPE html&gt;
&lt;html&gt;

&lt;head&gt;
  &lt;meta charset="utf-8"&gt;
  &lt;title&gt;handsontable_test&lt;/title&gt;
  &lt;link rel="stylesheet" type="text/css" href='css/handsontable.full.css'&gt;
  &lt;script src='js/jquery-1.11.1.min.js'&gt;&lt;/script&gt;   //jQueryもお忘れなく
  &lt;script src='js/handsontable.full.js'&gt;&lt;/script&gt;
&lt;/head&gt;</pre>
<p>&nbsp;</p>
<p>続いて handsontable のスクリプトをヘッダ内に書きます。ちなみに今回はデモのソースを解説します。</p>
<pre class="lang:default decode:true ">&lt;script&gt;
$(document).ready(function () {

  var data = [     //表に流し込むデータを定義します。サーバーからJSONなどで持ってきてもOK
      ['', 'Maserati', 'Mazda', 'Mercedes', 'Mini', 'Mitsubishi'],
      ['2009', 0, 2941, 4303, 354, 5814],
      ['2010', 3, 2905, 2867, 412, 5284],
      ['2011', 4, 2517, 4822, 552, 6127],
      ['2012', 2, 2422, 5399, 776, 4151]
    ],
    container = document.getElementById('example'),  //後ほど表を展開する要素を指定
    hot;
  
  hot = new Handsontable(container, {      //以下はデータ指定と表示オプション
    data: data,            //さっき作ったdataを指定
    minSpareRows: 1,       //表の一番下にいくつ空行を表示するか
    colHeaders: true,      //カラムの名前を表示するかどうか
    contextMenu: true      //セルを右クリックしたときのメニューをすべて表示
  });
  
  
  function bindDumpButton() {    //以下は基本的にいじりません
  
      Handsontable.Dom.addEvent(document.body, 'click', function (e) {
  
        var element = e.target || e.srcElement;
  
        if (element.nodeName == "BUTTON" &amp;&amp; element.name == 'dump') {
          var name = element.getAttribute('data-dump');
          var instance = element.getAttribute('data-instance');
          var hot = window[instance];
          console.log('data of ' + name, hot.getData());
        }
      });
    }
  bindDumpButton();    //関数実行

});
&lt;/script&gt;</pre>
<p>&nbsp;</p>
<p>次は同じ HTML 内に表を展開する要素を書きます</p>
<pre class="lang:default decode:true">&lt;div id="example" class="handsontable"&gt;&lt;/div&gt;</pre>
<p>これで HTML を表示すると公式デモと同じ表が出て、操作可能となるはずです ヾ(´ω｀)ﾉ</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 14pt;"> <strong>Ajax を使った応用編</strong></span></p>
<p>最近作ったアプリケーションではサーバーから txt ファイルを読み込み、ユーザーに編集させてまたサーバーへ Ajax で投げ返すということをしました。使った表示オプションやバリデーションもそのまま記載します。</p>
<pre class="lang:default decode:true ">&lt;script&gt;
$(document).ready(function () {
    var data = [
        &lt;c:forEach var="i" items="${ip_list}"&gt; //springフレームワークから配列を読み込み
           {"ipname": "${i}"},                 //jspタグで配列を展開
        &lt;/c:forEach&gt;
           {"": ""}
    ];

    //セルのデータにバリデーションをかけたい場合、正規表現を指定↓
    var ip_regexp = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;

    var msg = document.getElementById("msg");
    var container = document.getElementById('iptext');
    var hot = new Handsontable(container, {
        data: data,
        colWidths: 400,          //カラム幅をピクセル指定
        currentRowClassName: 'currentRow',   //セルフォーカスを使いたい場合指定　後述
        currentColClassName: 'currentCol',   //セルフォーカスを使いたい場合指定　後述
        minSpareRows: 1,         //表の一番下にいくつ空行を表示するか
        contextMenu: true,　     //セルを右クリックしたときのメニューをすべて表示
        rowHeaders: true,        //行の名前を表示
        colHeaders: true,        //カラムの名前を表示
        colHeaders: ['ipname'],  //カラムの名前を指定
        columns: [
            {data: 'ipname', validator: ip_regexp, allowInvalid: false} //バリデ指定
        ],
        afterChange: function (change, source) {   //以下セル編集後の処理
            $.ajax({
                url: "http://192.168.2.1/rest",  //postするエンドポイントを指定
                dataType: "text",   //textデータをpostする(jsonでもOK)
                type: "POST",       //メソッドをPOSTに指定
                data: {data: change[0][2] + "," + change[0][3]}, //変更前&amp;変更後データ
                success: function () {   //以下編集が成功した後の処理
                    msg.innerText = "設定を保存しました。";
                    $(this).delay(1500).queue(function() {
                       msg.innerText = "変更したいIPをダブルクリックして書き変えてください。";
                       $(this).dequeue();
                    });
                }
            });
         }
    });

    function bindDumpButton() {   //以下は基本的にいじりません
        Handsontable.Dom.addEvent(document.body, 'click', function (e) {
          var element = e.target || e.srcElement;
          if (element.nodeName == "BUTTON" &amp;&amp; element.name == 'dump') {
            var name = element.getAttribute('data-dump');
            var instance = element.getAttribute('data-instance');
            var hot = window[instance];
            console.log('data of ' + name, hot.getData());
          }
       });
    }

    bindDumpButton();
});

&lt;/script&gt;</pre>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 14pt;"> <strong>クリックしたセルを色フォーカスする</strong></span></p>
<p>セルをクリックした時にそのセルをフォーカスさせたい場合は CSS に以下を追記します</p>
<p><strong> (handsontable.full.css)</strong></p>
<pre class="lang:default decode:true">.handsontable .currentRow {
  background-color: #F9F9FB;  //色はご自由に～
}

.handsontable .currentCol {
  background-color: #E7E8EF;  //色はご自由に～
}</pre>
<p>&nbsp;</p>
<p>すると、こんな感じでクリックしたセルがフォーカスされます<br />
<a href="http://handsontable.com/demo/current.html"><br />
</a><a href="http://handsontable.com/demo/current.html" target="_blank"><img class="alignnone wp-image-571 size-full" src="https://cloudear.jp/blog/wp-content/uploads/2015/01/hot2.png" alt="hot2" width="376" height="163" /></a></p>
<p>いかがでしたか？今回は Web 上でエクセルのように表データを編集できる『Handsontable』をご紹介しました。このプラグインにはまだまだオプションがありますので、興味がある方は<a title="Handsontable options" href="https://github.com/handsontable/handsontable/wiki/Options" target="_blank">公式のオプションページ</a>を参考にしてみてください。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=483</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
