<?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>【jquery】タグの記事一覧｜ミトラボ</title>
	<atom:link href="https://mito-lab.com/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>https://mito-lab.com</link>
	<description>フリーランスWebデザイナーの実験と備忘録</description>
	<lastBuildDate>Fri, 08 Jan 2021 00:43:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.6.17</generator>

<image>
	<url>https://mito-lab.com/wp-content/uploads/2019/11/cropped-fav_mitolab2.0-1-32x32.jpg</url>
	<title>【jquery】タグの記事一覧｜ミトラボ</title>
	<link>https://mito-lab.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>jQueryで簡易的な検索機能(フィルター機能)を作る方法</title>
		<link>https://mito-lab.com/jquery-selectitem/</link>
					<comments>https://mito-lab.com/jquery-selectitem/#respond</comments>
		
		<dc:creator><![CDATA[mito]]></dc:creator>
		<pubDate>Thu, 07 Jan 2021 14:47:45 +0000</pubDate>
				<category><![CDATA[コーディングの勉強]]></category>
		<category><![CDATA[jquery]]></category>
		<guid isPermaLink="false">https://mito-lab.com/?p=2810</guid>

					<description><![CDATA[同じ形式のデータの羅列（表やリストなど）の場合、件数が多ければ多いほど、必要な情報を素早く探せることが重要になります。 実装の条件 複数データをテーブル形式（表）で表示する チェックボックスで選択した年度のデータのみ表示]]></description>
										<content:encoded><![CDATA[<p>こんにちは、mito(<a href="https://twitter.com/mito_works" target="_blank">@mito_works</a>)です。</p>
<p class="p1">同じ形式のデータの羅列（表やリストなど）の場合、件数が多ければ多いほど、必要な情報を素早く探せることが重要になります。</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">例えばテーブルデータ<span class="s1">200</span>件並べてその中から、必要な情報を探してね<span class="s1">..</span>と言うのはちょっとユーザビリティが悪いよね。</div>
</div></div>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">今回は、<span class="marker"><strong>データベースを設計しないまでも手軽に簡易的な検索、フィルタ（絞り込み）ができる方法</strong></span>のご紹介です</div>
</div></div>
<div class="kaisetsu-box1">
<div class="kaisetsu-box1-title">こんな人におすすめ</div>
<p><span class="s1">HTML,CSS,jQuery</span>のみで簡易的な検索機能を実装したい方</p>
</div>
<h2>実装の条件</h2>
<ul>
<li class="p1">複数データをテーブル形式（表）で表示する</li>
<li class="p1">チェックボックスで選択した年度のデータのみ表示する</li>
</ul>
<h2>事前準備</h2>
<p class="p1">今回は、エクセルの表データを<span class="s1">HTML</span>のテーブルに置き換えて表示することを想定しました。</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">以下のようなツールで簡単に<span class="s1">Excel</span>から<span class="s1">HTML</span>に変換できるよ</div>
</div></div>
<div class="jin-iconbox green-iconbox">
<div class="jin-iconbox-icons"><i class="jic jin-ifont-speaker jin-icons"></i></div>
<div class="jin-iconbox-main green--border"><a href="https://tech-unlimited.com/exceltable.html">Excel to HTML</a></div>
</div>
<h2>HTMLの実装</h2>
<pre class="language-markup"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;Document&lt;/title&gt;
    &lt;link rel="stylesheet" href="./style.css"&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;form class="js-filter-form list_checkbox"&gt;
        &lt;label&gt;&lt;input type="checkbox" name="year" value="18年度" checked&gt;2018年度&lt;/label&gt;
        &lt;label&gt;&lt;input type="checkbox" name="year" value="19年度" checked&gt;2019年度&lt;/label&gt;
        &lt;label&gt;&lt;input type="checkbox" name="year" value="20年度" checked&gt;2020年度&lt;/label&gt;
    &lt;/form&gt;

    &lt;table class="js-filter-items"&gt;
        &lt;thead&gt;
            &lt;tr&gt;
                &lt;td&gt;年度&lt;/td&gt;
                &lt;td&gt;チーム名&lt;/td&gt;
                &lt;td&gt;タイトル&lt;/td&gt;
                &lt;td&gt;概要&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt;
            &lt;tr data-cat="18年度"&gt;
                &lt;td&gt;18年度&lt;/td&gt;
                &lt;td&gt;チームりんご&lt;/td&gt;
                &lt;td&gt;りんごの育て方&lt;/td&gt;
                &lt;td&gt;りんごの育て方について詳しく解説します。&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr data-cat="18年度"&gt;
                &lt;td&gt;18年度&lt;/td&gt;
                &lt;td&gt;チームみかん&lt;/td&gt;
                &lt;td&gt;みかんの育て方&lt;/td&gt;
                &lt;td&gt;みかんの育て方について詳しく解説します。&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr data-cat="19年度"&gt;
                &lt;td&gt;19年度&lt;/td&gt;
                &lt;td&gt;チームバナナ&lt;/td&gt;
                &lt;td&gt;バナナの育て方&lt;/td&gt;
                &lt;td&gt;バナナの育て方について詳しく解説します。&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr data-cat="20年度"&gt;
                &lt;td&gt;20年度&lt;/td&gt;
                &lt;td&gt;チームざくろ&lt;/td&gt;
                &lt;td&gt;ざくろの育て方&lt;/td&gt;
                &lt;td&gt;ざくろの育て方について詳しく解説します。&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr data-cat="20年度"&gt;
                &lt;td&gt;20年度&lt;/td&gt;
                &lt;td&gt;チームざくろ&lt;/td&gt;
                &lt;td&gt;ざくろの育て方&lt;/td&gt;
                &lt;td&gt;ざくろの育て方について詳しく解説します。&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;script src="https://code.jquery.com/jquery-3.3.1.min.js"&gt;&lt;/script&gt;
    &lt;script text="text/javascript" src="./script3.js"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>&nbsp;</p>
<h2>jQueryの実装</h2>
<h3>実装概要</h3>
<ul>
<li>チェックボックスにチェックした値を配列に追加する(push)</li>
<li>チェックボックスの値と比較する値をテーブルの行単位で取得する</li>
<li>テーブルの行単位で取得した値とチェックボックスの値が一致するかチェックする（inArray）</li>
<li>一致しない場合は、hiddenクラスを付与する(addClass)</li>
<li>一致する場合は、hiddenクラスを除く(removeClass)</li>
</ul>
<pre class="language-javascript"><code>$(".js-filter-form :checkbox").on("click", function(){
	var checked = [];
	$(".js-filter-form :checked").each(function(){
		checked.push($(this).val());
	});
    console.log(checked);
    
    $(".js-filter-items tbody tr").each(function(){
        var cat = $(this).data("cat");
        console.log(cat);
		var is_exist = $.inArray( cat, checked );
        console.log('exit' + is_exist);
        if (is_exist != -1) {
			$(this).removeClass("hidden");
		
		} else {
			$(this).addClass("hidden");
		}
    });
});</code></pre>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">hiddenクラスについてはcssで表示非表示の設定をするよ！</div>
</div></div>
<h2>CSSの実装</h2>
<pre class="language-css"><code>table{
    border-collapse: collapse;
    border: solid 2px gray;
}
table td{
    border: dashed 1px gray;
    padding:20px;
}
table thead{
    background:#FABE23;
    color:#fff;
}
.hidden{
    display: none;
}</code></pre>
<p>tableの整形と、hiddenクラスの設定を行います。</p>
<h2>完成イメージ</h2>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">デフォルトは全てチェックが入った状態です</div>
</div></div>
<img class="alignnone size-full wp-image-2813" src="https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.15.54.png" alt="" width="781" height="431" srcset="https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.15.54.png 781w, https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.15.54-300x166.png 300w, https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.15.54-768x424.png 768w" sizes="(max-width: 781px) 100vw, 781px" />
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">チェックボックスを外すと外された部分は非表示となります</div>
</div></div>
<img class="alignnone size-full wp-image-2815" src="https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.16.29-1.png" alt="" width="776" height="243" srcset="https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.16.29-1.png 776w, https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.16.29-1-300x94.png 300w, https://mito-lab.com/wp-content/uploads/2021/01/スクリーンショット-2021-01-07-23.16.29-1-768x240.png 768w" sizes="(max-width: 776px) 100vw, 776px" />
<p>&#8211;END&#8211;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mito-lab.com/jquery-selectitem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【簡単】wowで要素をふわっと表示させたりシュッと表示させるアニメーションをつける</title>
		<link>https://mito-lab.com/jquery-animation/</link>
					<comments>https://mito-lab.com/jquery-animation/#comments</comments>
		
		<dc:creator><![CDATA[mito]]></dc:creator>
		<pubDate>Thu, 03 Oct 2019 04:19:01 +0000</pubDate>
				<category><![CDATA[コーディングの勉強]]></category>
		<category><![CDATA[jquery]]></category>
		<guid isPermaLink="false">https://mito-lab.com/?p=1350</guid>

					<description><![CDATA[こんにちは。mito（@mito_works）です。 今回は、jQueryのライブラリーを使って要素がふわっと登場するアニメーション を簡単に実装する方法です。 #30DAYSトライアル2nd DAY21 「WOW」ライ]]></description>
										<content:encoded><![CDATA[<p>こんにちは。mito（<a href="https://twitter.com/mito_works">@mito_works</a>）です。</p>
<p>今回は、jQueryのライブラリーを使って要素がふわっと登場するアニメーション<br />
を簡単に実装する方法です。</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">こんな動きが簡単にできるよ！</div>
</div></div>
<blockquote class="twitter-tweet" data-width="500" data-dnt="true">
<p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/30DAYS%E3%83%88%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%AB?src=hash&amp;ref_src=twsrc%5Etfw">#30DAYSトライアル</a><br />2nd DAY21</p>
<p>「WOW」ライブラリを使ってアニメーション。<br />こんなに簡単に、こんなにリッチな動きが実現できるなんてすごいなぁ〜。</p>
<p>そして動きが入るとそこに命が吹き込まれたみたいな気がして楽しい♪<br />色々試してみた結果「flipInX、rollIn」の個性的なアニメーションが好きです。 <a href="https://t.co/50IJ3By0kn">pic.twitter.com/50IJ3By0kn</a></p>
<p>&mdash; mito@ひよっこwebデザイナー (@mito_works) <a href="https://twitter.com/mito_works/status/1178938117094436864?ref_src=twsrc%5Etfw">October 1, 2019</a></p></blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<div class="kaisetsu-box4">
<div class="kaisetsu-box4-title">こんな人におすすめ</div>
<p>Webサイトに動きをつけて個性や世界観を表現したい人</p>
</div>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">使い方、順を追って解説します！</div>
</div></div>
<h2><span style="font-size: 1.2rem; font-weight: 600;">ダウンロード</span></h2>
<p>ソースコードをgithub上から取得します。<br />
<span style="color:#e9546b; font-size:16px;" class="jic-sc jin-code-icon-arrow"><i class="jic jin-ifont-arrow"></i></span><a href="https://github.com/graingert/wow">https://github.com/graingert/wow</a></p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">WOW.js本家の商用利用には有料の公式ライセンスが必要なので、<span class="marker"><strong><span class="markerYellow">無料で商用利用できるMIT版をダウンロードしたよ！</span></strong></span></div>
</div></div>
<img class="alignnone size-medium wp-image-1354" src="https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.54.04-300x146.png" alt="" width="300" height="146" srcset="https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.54.04-300x146.png 300w, https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.54.04-768x373.png 768w, https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.54.04.png 872w" sizes="(max-width: 300px) 100vw, 300px" />
<h2>フォルダへの配置</h2>
<p>ダウンロードするとたくさんファイルやフォルダがありますが、必要なものは<span class="marker2"><strong>distフォルダとanimate.css</strong></span>のみです。</p>
<img class="alignnone size-medium wp-image-1355" src="https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.58.02-300x119.png" alt="" width="300" height="119" srcset="https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.58.02-300x119.png 300w, https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.58.02-768x306.png 768w, https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.58.02-1024x407.png 1024w, https://mito-lab.com/wp-content/uploads/2019/10/スクリーンショット-2019-10-03-11.58.02.png 1156w" sizes="(max-width: 300px) 100vw, 300px" />
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content"><span class="marker2"><strong>distフォルダとanimate.css</strong></span>をコーディングしているフォルダに配置します。</div>
</div></div>
<h2>HTMLの記述</h2>
<div class="kaisetsu-box1">
<div class="kaisetsu-box1-title">HTMLの手順</div>
<ol>
<li>ライブラリを読み込む</li>
<li>アニメーションの指定をする</li>
</ol>
</div>
<pre class="language-markup"><code>    &lt;link rel="stylesheet" href="css/animate.css"&gt;
    &lt;script src="dist/wow.min.js"&gt;&lt;/script&gt;
</code></pre>
<p>&nbsp;</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">wow.min.jsはjqueryを読み込まないと動かないので必ずjqueryの記述の後に書いてね。</div>
</div></div>
<pre class="language-markup"><code>&lt;div class="col-lg-4 col-md-6 col-sm-12"&gt;
    &lt;div class="card wow bounceInLeft" data-wow-duration="1s" data-wow-delay="1s"&gt;
       &lt;img class="card-img-top" src="img/card-img.svg" alt=""&gt;
           &lt;div class="card-body text-left"&gt;
              &lt;h4 class="card-title"&gt;タイトルタイトル&lt;/h4&gt;
              &lt;p class="card-txt"&gt;テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト&lt;/p&gt;
           &lt;/div&gt;
     &lt;/div&gt;
&lt;/div&gt;</code></pre>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content"><span class="marker"><strong>wow bounceInLeft </strong></span>この部分で左からシュッと出てくるアニメーションの指定をしています。</div>
</div></div>
<p><strong><span class="marker">wowクラスはスクロールが来た時にアニメーションを動かすための宣言。</span></strong></p>
<p><span class="marker"><strong>bounceInLeftクラスはアニメーションの種類です。</strong></span></p>
<h4>オプションの解説</h4>
<table class="cps-table03">
<tbody>
<tr>
<th>data-wow-duration</th>
<td class="rankinginfo">アニメーションの時間</td>
</tr>
<tr>
<th>data-wow-delay</th>
<td class="rankinginfo">アニメーションがスタートするまでの時間</td>
</tr>
<tr>
<th>data-wow-offset</th>
<td class="rankinginfo">アニメーションスタートの距離</td>
</tr>
<tr>
<th>data-wow-iteration</th>
<td class="rankinginfo">アニメーション繰り返しの回数</td>
</tr>
</tbody>
</table>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content"><strong><span class="marker">アニメーションの時間(data-wow-duration)とアニメーションがスタートするまでの時間(data-wow-delay</span></strong>)この2つの指定で十分かと思います！</div>
</div></div>
<h2>jQueryの記述</h2>
<p>jsでwowを使いますということを宣言しないと使えません。<br />
(以下はscript.jsでの記載内容です)</p>
<pre class="language-javascript"><code>new WOW().init();
</code></pre>
<p>&nbsp;</p>
<h4>スクロールされるたびに動きをつけたい場合</h4>
<p>data-wow-iterationでアニメーションの回数を指定するのではなくて、スクロールされるたびに動きをつけたい場合は以下のように書きます。</p>
<pre class="language-javascript"><code>    $(window).scroll(function(){
        new WOW().init();
    });</code></pre>
<p>&nbsp;</p>
<h2>アニメーションの種類</h2>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">こちらにアニメーションの種類一覧があるので自分好みのアニメーションを見つけてみてね！</div>
</div></div>
<p><span style="color:#e9546b; font-size:16px;" class="jic-sc jin-code-icon-arrow"><i class="jic jin-ifont-arrow"></i></span><a href="https://github.com/daneden/animate.css">https://github.com/daneden/animate.css</a></p>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">ちなみに私は「flipInX、rollIn」が好きです！</div>
</div></div>
<p>こちらのサイトでもアニメーションの動きを確認できます。</p>
<div class="jin-flexbox jsb-sp-2col-off">
<div class="jin-flexbox">
<div class="jin-shortcode-button jsb-visual- jsb-hover-down"><a href="https://daneden.github.io/animate.css/" target="blank" style="background-color:#ffde02; border-radius:50px;">animate.css</a></div>
</div>
</div>
<h2>まとめ</h2>
<p>jQueryのライブラリーwowのご紹介でした。<br />
簡単に様々な種類のアニメーションが実装できることがお分りいただけたと思います。</p>
<p>ただし、あくまで<span class="marker2"><strong>スクロールというアクションがないと動作しない</strong></span>のでご注意ください！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mito-lab.com/jquery-animation/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>30DAYSトライアル〜jQueryの基礎を学ぶDAY4~6〜</title>
		<link>https://mito-lab.com/coding-30days-2nd-4-6/</link>
					<comments>https://mito-lab.com/coding-30days-2nd-4-6/#respond</comments>
		
		<dc:creator><![CDATA[mito]]></dc:creator>
		<pubDate>Thu, 12 Sep 2019 03:34:59 +0000</pubDate>
				<category><![CDATA[コーディングの勉強]]></category>
		<category><![CDATA[30DAYSトライアル]]></category>
		<category><![CDATA[jquery]]></category>
		<guid isPermaLink="false">https://mito-lab.com/?p=1248</guid>

					<description><![CDATA[こんにちは。mito（@mito_works）です。 今回はコーディングのスキルアップのために挑戦している#30DAYSトライアルの記録を書きます。 30DAYSトライアルは、独学を前提としたプログラミング学習プログラム]]></description>
										<content:encoded><![CDATA[<p>こんにちは。mito（<a href="https://twitter.com/mito_works">@mito_works</a>）です。</p>
<p>今回はコーディングのスキルアップのために挑戦している#30DAYSトライアルの記録を書きます。</p>
<p><span class="marker"><strong>30DAYSトライアルは、独学を前提としたプログラミング学習プログラムです。</strong></span></p>
<p>#30daysトライアルとは何？どうやって始めるの？といった疑問をお持ちの方、こちらをご覧ください。</p>
<div class="concept-box5">
<p><a href="https://tokyofreelance.jp/daily-trial-map/">30DAYSトライアルの始め方</a></p>
</div>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">30DAYSトライアルの2ndステージ。より実践レベルのトライアルです！</div>
</div></div>
<div class="concept-box5">
<p><a href="https://tokyofreelance.jp/30daystrial-coding-4th/#outline__2">4. 30DAYSトライアル【コーダーとして企業と仕事ができる実力をつけよう】</a></p>
</div>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">2ndのDAY4~6はprogateを使ってjQueryを学んでいくよ！</div>
</div></div>
<h2>jQueryとは</h2>
<p>QueryはJavaScriptのライブラリの1つでHTMLとCSSだけでは実現できなかったアニメーションなどの動きを実現します。</p>
<h2>基本の書き方</h2>
<ol>
<li>jQueryオブジェクトを作成</li>
<li>そのjQueryオブジェクトに対してメソッド（機能）を呼び出す</li>
</ol>
<div class="simple-box3">
<p>①$(&#8216;セレクタ&#8217;)②.メソッド(引数);</p>
<p>例） $(&#8216;h1&#8217;).hide();</p>
</div>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">jQueryのオブジェクトは<span class="marker"><strong>$(&#8216;セレクタ&#8217;)</strong>で生成される配列のような構造をしているものだよ！</span>セレクタにはHTMLのタグ名やclass名などを指定してね。</div>
</div></div>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">jQueryのオブジェクトの中身は合致した要素が配列のように並んでいるんだね〜。</div>
</div></div>
<div class="jin-photo-title"><span class="jin-fusen3">Tips</span></div>
<p>メソッドのhide();と似たものとしてfadeOut();があります。後者の場合アニメーションをつけることが可能です。</p>
<table class="cps-table03" style="height: 424px;">
<tbody>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">要素を非表示にしたい</th>
<td class="rankinginfo" style="height: 23px; width: 423px;">hide(); fadeOut(); slideUp();</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">非表示を表示したい</th>
<td class="rankinginfo" style="height: 23px; width: 423px;">show(); fadeIn(); slideDown();</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">css要素を変更したい</th>
<td class="rankinginfo" style="height: 23px; width: 423px;">css(&#8216;プロパティ名&#8217;,&#8217;値&#8217;;)　ex) css(&#8216;display&#8217;,&#8217;block&#8217;);</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">文字列を置き換えたい</th>
<td class="rankinginfo" style="height: 23px; width: 423px;">text(&#8221;置き換えたい内容);</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">htmlを置き換えたい</th>
<td class="rankinginfo" style="height: 23px; width: 423px;">html(置き換えたい内容);</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">子要素全て取得したい</th>
<td style="height: 23px; width: 423px;">find(&#8216;セレクタ&#8217;);</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">1階層下の子要素を取得したい</th>
<td style="height: 23px; width: 423px;">children(&#8216;セレクタ&#8217;);</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">クラスを付与したい</th>
<td style="height: 23px; width: 423px;">addClass(&#8216;クラス名&#8217;);</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">クラスを外したい</th>
<td style="height: 23px; width: 423px;">removeClass(&#8216;クラス名&#8217;);</td>
</tr>
<tr style="height: 57px;">
<th style="height: 57px; width: 172px;">引数に指定したクラスを、オブジェクトが持っているか判定したい</th>
<td style="height: 57px; width: 423px;">hasClass(&#8216;クラス名&#8217;);</td>
</tr>
<tr style="height: 38px;">
<th style="height: 38px; width: 172px;">指定したindex番号の要素を取り出したい</th>
<td style="height: 38px; width: 423px;">eq(数字);</td>
</tr>
<tr style="height: 42px;">
<th style="height: 42px; width: 172px;">特定の要素のindex番号を取得したい</th>
<td style="height: 42px; width: 423px;">index($(&#8216;セレクタ&#8217;));  ex)$(&#8216;.index-btn&#8217;).index($(this)); //クリックしたボタンの番号取得</td>
</tr>
<tr style="height: 57px;">
<th style="height: 57px; width: 172px;">兄弟要素（同じ階層の要素）の中から一つ前の要素を取得したい</th>
<td style="height: 57px; width: 423px;">prev();</td>
</tr>
<tr style="height: 23px;">
<th style="height: 23px; width: 172px;">兄弟要素（同じ階層の要素）の中から一つ後の要素</th>
<td style="height: 23px; width: 423px;">next();</td>
</tr>
<tr>
<th style="width: 172px;">要素の個数を取得したい</th>
<td style="width: 423px;">length();</td>
</tr>
<tr>
<th style="width: 172px;">HTML属性をget、setしたい</th>
<td style="width: 423px;">attr();</td>
</tr>
<tr>
<th style="width: 172px;">値を取得したい</th>
<td style="width: 423px;">val();</td>
</tr>
<tr>
<th style="width: 172px;">値をセットしたい</th>
<td style="width: 423px;">val(&#8216;セットしたい値&#8217;);</td>
</tr>
<tr>
<th style="width: 172px;">アニメーションをつけたい</th>
<td style="width: 423px;">animate({&#8216;プロパティ&#8217;: 値},秒数);</td>
</tr>
<tr>
<th style="width: 172px;">ページ上部から指定したpxの場所へ移動したい</th>
<td style="width: 423px;">$(&#8216;html, body&#8217;).scrollTop(0); //最上部の場合は0</td>
</tr>
<tr>
<th style="width: 172px;">スクロールにアニメーションをつけたい</th>
<td style="width: 423px;">$(&#8216;html, body&#8217;).animate({&#8216;scrollTop&#8217;: 0}, 時間);</td>
</tr>
<tr>
<th style="width: 172px;">要素の表示位置を取得したい</th>
<td style="width: 423px;">$(&#8216;h1&#8217;).offset(); //h1要素の表示位置 (topからxx、leftからxxなど)</p>
<p>$(&#8216;h1&#8217;).offset().top; //トップからh1の距離</td>
</tr>
</tbody>
</table>
<div class="jin-photo-title"><span class="jin-fusen3">Tips</span></div>
<p>attr(&#8216;id&#8217;, &#8216;topMessage&#8217;)のように第一引数に<span class="highlight">属性名</span>、第二引数にその<span class="highlight">属性値</span>を指定することで属性をセットすることができます。そして、第二引数を指定しない場合は、その属性の値を取得できます。</p>
<p>if文の中身の=は2つで繋げます。</p>
<pre class="language-javascript"><code>if (Index == 0) {
      $('.prev-btn').hide();
    } else if (Index == $('.slide').length-1) {
      $('.next-btn').hide();
}</code></pre>
<h2>classとidの使いわけ</h2>
<p>idは同一ページに一箇所しか存在しないので、<span class="marker"><strong>jQueryの処理が高速化されます。</strong></span><br />
なので、jQueryオブジェクトのセレクタにはidを使うことが推奨されています。</p>
<h2>処理を行うタイミングの指定</h2>
<p>イベントを用いると処理を行うタイミングを設定できます。</p>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">例えば、このボタンが押されたらモーダルを開くなどです。</div>
</div></div>
<div class="simple-box3">
<p>$(&#8216;セレクタ&#8217;).イベント名(function(){ });</p>
</div>
<pre class="language-javascript"><code> $('#open-btn').click(function(){
    $('#modal').fadeIn();
  });</code></pre>
<table class="cps-table03">
<tbody>
<tr>
<th>クリック時のイベント</th>
<td class="rankinginfo">click(function(){});</td>
</tr>
<tr>
<th>ホバー時のイベント</th>
<td class="rankinginfo">hover(function(){},funtion(){});</td>
</tr>
<tr>
<th>送信時のイベント</th>
<td class="rankinginfo">submit(function(){});</td>
</tr>
</tbody>
</table>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">hoverはマウスを①乗せたとき、②離した時の設定をするため引数は2つだよ。</div>
</div></div>
<h2>thisの使い方</h2>
<p>thisを使うと、実際にイベントが起こった要素を取得できます。</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">例えば複数行あるリストの中のクリックした行のみの要素を取得したい場合などに使うよ。</div>
</div></div>
<pre class="language-javascript"><code>  $('.li').click(function(){
    $(this).css('color','blue');
  });</code></pre>
<p>&nbsp;</p>
<h2>変数の宣言</h2>
<p>変数宣言にはvarを使います。</p>
<div class="simple-box3">
<p>var 変数名= 要素；</p>
</div>
<h2>jQuery使用の準備</h2>
<ol>
<li>&lt;head&gt;タグの中でjQueryライブラリを読み込む</li>
<li>&lt;/body&gt;の直前にjsファイルを読み込む</li>
</ol>
<pre class="language-javascript"><code>&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"&gt;&lt;/script&gt;</code></pre>
<pre class="language-javascript"><code>&lt;script src="script.js"&gt;&lt;/script&gt;</code></pre>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">&lt;script&gt;はCSSファイルの読み込みのように&lt;head&gt;タグの中にも書けるけれど、&lt;/body&gt;の直前に書くことで、<span class="marker"><strong>Webページの表示速度をより早めること</strong></span>ができるよ！</div>
</div></div>
<h2>カスタムデーター属性</h2>
<p>属性は自分でつくることもできます。これをカスタムデータ属性と言います。</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">「<span class="highlight">data-</span>」から始まる属性名を自由に設定できるよ！</div>
</div></div>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mito-lab.com/coding-30days-2nd-4-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【jQuery】ハンバーガーメニュー(ドロワーメニュー)の作り方</title>
		<link>https://mito-lab.com/drawer-menu/</link>
					<comments>https://mito-lab.com/drawer-menu/#respond</comments>
		
		<dc:creator><![CDATA[mito]]></dc:creator>
		<pubDate>Mon, 10 Jun 2019 04:21:46 +0000</pubDate>
				<category><![CDATA[コーディングの勉強]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<guid isPermaLink="false">https://mito-lab.com/?p=787</guid>

					<description><![CDATA[こんにちは、mito（@mito_works）です！ 今回は、jQueryとCSSだけでハンバーガーメニューを作りたいと思います。 HTMLでの記載 lt;headergt; lt;div id=“navToggl]]></description>
										<content:encoded><![CDATA[<p class="p1"><span class="s1">こんにちは、mito（<a href="https://twitter.com/mito_works"><span class="s2">@mito_works</span></a>）です！</span></p>
<p>今回は、jQueryとCSSだけでハンバーガーメニューを作りたいと思います。</p>
<h3><span id="HTML">HTMLでの記載</span></h3>
<pre class="language-markup"><code>&lt;header&gt;
 &lt;div id=“navToggle”&gt;
  &lt;div&gt;
   &lt;span&gt;&lt;/span&gt; &lt;span&gt;&lt;/span&gt; &lt;span&gt;&lt;/span&gt;
  &lt;/div&gt;
 &lt;/div&gt;

 &lt;nav id=“menu”&gt;
  &lt;ul&gt;
   &lt;li&gt;&lt;a href=“#”&gt;HOME&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=“#taitle-gaiyou”&gt;開催概要&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=“#taitle-program”&gt;プログラム&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=“#taitle-contact”&gt;お問合わせ&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/nav&gt;
&lt;/header&gt;</code></pre>
<h3><span id="CSS">CSSでの記載</span></h3>
<p>ハンバーガーメニュー表示の制御です。</p>
<pre class="language-css"><code>#navToggle {
 display:none;
 position:absolute; /*bodyに対しての絶対位置指定*/
 right:13px;
 top:13px;
 width:30px;
 height:25px;
 cursor:pointer;
 padding: 12px 0;
}
#navToggle div {
 position:relative;
}
#navToggle span {
 display:block;
 position:absolute; /*#navToggle div に対して*/
 width:100%;
 border-bottom:solid 3px #fff;
 -webkit-transition: .35s ease-in-out;
 -moz-transition: .35s ease-in-out;
 transition: .35s ease-in-out;
}
#navToggle span:nth-child(1) {
 top:0;
}
#navToggle span:nth-child(2) {
 top:11px;
}
#navToggle span:nth-child(3) {
top:22px;
}
header nav {
 position: absolute;
 right:0;
 top: -800px;
 background-color: #fff;
 width:50%;
 padding:0 10px;
 -webkit-transition:.5s ease-in-out;
 -moz-transition:.5s ease-in-out;
 transition:.5s ease-in-out;
 text-align:left;
}</code></pre>
<p>以下のようなハンバーガーメニューを作りました。</p>
<img class="alignnone size-full wp-image-788" src="https://mito-lab.com/wp-content/uploads/2019/06/スクリーンショット-2019-06-10-12.42.13.png" alt="" width="108" height="122" />
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">header navのところで、top -800pxとしているので、このままでは実際には見えない状態だよ。</div>
</div></div>
<h3>jQueryでの記載</h3>
<p><span class="s1"></p>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">jQueryではハンバーガーメニューの三本線をクリック時に×に変形させたいので、指定した要素にアクションと連動させて名前を付けたり消したりする処理を書いています。</div>
</div></div>
<h4 id="pt1">.toggleClassメソッド</h4>
<div class="jin-photo-title"><span class="jin-fusen3">POINT!!</span></div>
<p>指定した要素に指定したクラス名を付けたり消したりできる。<br />
clickファンクションで使うと、クリックするたびにクラス名を付けたり消したりできる。</p>
<pre class="language-javascript"><code>   $('#navToggle').click(function(){
           $('header').toggleClass('openNav');
   });</code></pre>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">今回はクリックに連動させて、headerに .openNav を付加・削除しているよ！</div>
</div></div>
<h3>再びCSSの記載（メディアクエリの設定）</h3>
<p>画面横幅が768px以下の場合の設置を記載します。</p>
<ol>
<li>ハンバーガーメニューのメニュー内容の表示制御</li>
<li>クリック時に横棒を45度傾け×にする処理</li>
<li>ハンバーガーメニューが表示されるようにする</li>
<li>ハンバーガーメニューのメニュー内容が表示されるようにする</li>
</ol>
<pre class="language-css"><code>header ul {
	margin:0;
}
header ul li {
    display:block;
 	margin-left:3px;
    border-bottom:dotted 1px #2c9caf;
    line-height:3;
}
header ul li a {
	display:block;
	color:inherit;
	padding-left: 3px;
}
header ul li::after {
	content:'';
}
header ul li:last-child {
	border-bottom:none;
}
/*レスポンシブのメニューのお申し込みのみ背景色をかえる*/
header nav .nav-buy{
	background-color: #cc2e4c;
	margin-top: 4px;
	color: #fff;
}
#navToggle {
	display: block;
}
.openNav #navToggle span:nth-child(1) {
    top: 11px;
    -webkit-transform:rotate(-45deg);
    -moz-transform:rotate(-45deg);
    transform:rotate(-45deg);
}
.openNav #navToggle span:nth-child(2),
.openNav #navToggle span:nth-child(3) {
	top: 11px;
	-webkit-transform:rotate(45deg);
	-moz-transform:rotate(45deg);
	transform:rotate(45deg);
}

/*header menu*/
.openNav nav {
    -moz-transform: translateY(876px);
    -webkit-transform: translateY(876px);
    transform: translateY(876px);
}</code></pre>
<p>ハンバーガーメニューが表示され、クリックするとメニュー内容が表示されます。</p>
<img class="alignnone size-medium wp-image-790" src="https://mito-lab.com/wp-content/uploads/2019/06/スクリーンショット-2019-06-10-12.58.34-300x271.png" alt="" width="300" height="271" srcset="https://mito-lab.com/wp-content/uploads/2019/06/スクリーンショット-2019-06-10-12.58.34-300x271.png 300w, https://mito-lab.com/wp-content/uploads/2019/06/スクリーンショット-2019-06-10-12.58.34.png 712w" sizes="(max-width: 300px) 100vw, 300px" />
<p>こちらを参考にさせていただきました。</p>
<div class="concept-box5">
<p><a href="http://webdesign.practice.jp/drawer_jquery_css">ドロワーメニュー（ハンバーガーメニュー）を簡単な jQueryとCSSだけで作る手順</a></p>
</div>
<p style="text-align: center;">ーEndー</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mito-lab.com/drawer-menu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【jQuery】モーダルウィンドウの作り方と表示時にページ上部に戻ってしまう対処法</title>
		<link>https://mito-lab.com/jquery-modal-window/</link>
					<comments>https://mito-lab.com/jquery-modal-window/#respond</comments>
		
		<dc:creator><![CDATA[mito]]></dc:creator>
		<pubDate>Thu, 06 Jun 2019 00:36:41 +0000</pubDate>
				<category><![CDATA[コーディングの勉強]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<guid isPermaLink="false">https://mito-lab.com/?p=773</guid>

					<description><![CDATA[こんにちは、mito（@mito_works）です！ 今回は、モーダルウィンドウの作り方と、モーダルウィンドウ表示時に親画面がページ上部に戻ってしまうときの対処法について書きます。 全体的な動き 以下の3ステップを実装し]]></description>
										<content:encoded><![CDATA[<p class="p1"><span class="s1">こんにちは、mito（<a href="https://twitter.com/mito_works"><span class="s2">@mito_works</span></a>）です！</span></p>
<p>今回は、モーダルウィンドウの作り方と、モーダルウィンドウ表示時に親画面がページ上部に戻ってしまうときの対処法について書きます。</p>
<h3>全体的な動き</h3>
<p>以下の3ステップを実装していきます。</p>
<ol>
<li>リンクもしくはボタンを押す</li>
<li>モーダルウィンドウが表示される</li>
<li>閉じるもしくは×を押すと閉じる</li>
</ol>
<h3>HTMLでの記載</h3>
<p>モーダルウィンドウを作る。</p>
<pre class="language-markup"><code>&lt;div class="modal-wrapper" id="map-modal"&gt;
&lt;!-- モーダル全体の枠　--&gt;
　&lt;div class="modal"&gt;
&lt;!-- 右上に配置する×ボタン　--&gt;
　　&lt;div class="close-modal"&gt;
　　　&lt;i class="fa fa-2x fa-times"&gt;&lt;/i&gt;
   &lt;/div&gt;
　　&lt;div class="modal-main"&gt;
　　　&lt;div class="picture"&gt;
　　　　&lt;img src="images/map.jpg"&gt;
　　　&lt;/div&gt;
　　　&lt;div&gt;
　　　　&lt;p class="map-detail"&gt;詳しい地図の内容を記載する&lt;/p&gt;
　　　&lt;/div&gt;
　　&lt;/div&gt;
&lt;!-- 閉じるボタン　--&gt;
　　&lt;div class="closebutton"&gt;
　　　&lt;button class="close"&gt;閉じる&lt;/button&gt;
　　&lt;/div&gt;
　&lt;/div&gt;
&lt;/div&gt;</code></pre>
<p>&nbsp;</p>
<p>モーダルウィンドウへの遷移元を作る。</p>
<pre class="language-markup"><code>&lt;div&gt;													 
 &lt;p class="mapinfo" href=""&gt;												 
   &lt;a class="mapinfo-show1"&gt;詳しい地図はこちら&lt;/a&gt;												 
 &lt;/p&gt;
&lt;/div&gt;</code></pre>
<p>&nbsp;</p>
<h3>CSSでの記載</h3>
<p>モーダルウィンドウの装飾部分を記載する。</p>
<pre class="language-css"><code>.modal-wrapper {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 100;
  display: none;
}
.modal {
  position: absolute;
  top: 20%;
  left: 24%;
  background-color: #e6ecf0;
  padding: 20px 20px 20px;
  border-radius: 10px;
  width: 650px;
  height: auto;
}
.fa-times {
  position: absolute;
  top: 12px;
  right: 12px;
  color: rgba(128, 128, 128, 0.46);
  cursor: pointer;
}

.closebutton{
	text-align:center;
	margin-top:10px;
}

.close {
  display: inline-block;
  padding: 10px 140px;
  background-color: #0091a7;
  border: none;
  border-radius: 3px;
  color: white;
  margin: 10px auto;
  cursor: pointer;
}</code></pre>
<h3>JavaScriptでの記載</h3>
<p>モーダルウィンドウを開くときの制御を作る。</p>
<div class="jin-photo-title"><span class="jin-fusen3">POINT!!</span></div>
<p>モーダルウィンドウを開いたときの親画面の位置を記憶しておく。</p>
<pre class="language-css"><code>//グローバル変数
var sX_syncerModal = 0 ;
var sY_syncerModal = 0 ;

function scrollposition(){
	//スクロール位置を記録する
	var dElm = document.documentElement , dBody = document.body;
	sX_syncerModal = dElm.scrollLeft || dBody.scrollLeft;	//現在位置のX座標
	sY_syncerModal = dElm.scrollTop || dBody.scrollTop;	//現在位置のY座標
}</code></pre>
<p>&nbsp;</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">この記載をして、位置をずらさないように制御しないと、モーダルウィンドウを閉じる時に親画面のトップに戻ってしまうよ。</div>
</div></div>
<p>モーダルウィンドウを表示するためにクリックされた時の制御を作る</p>
<pre class="language-css"><code>$(function() {
 	// モーダル表示を行うclickイベント
 	$('.mapinfo-show1').click(function(){ 
 		scrollposition();
		$('#map-modal').fadeIn();
	});
});</code></pre>
<p>&nbsp;</p>
<p>モーダルウィンドウを閉じる時の制御を作る</p>
<pre class="language-css"><code>//「Close」ボタンクリックした際に閉じる処理
$('.close').on('click', function() {
 //スクロール位置を戻す
 window.scrollTo( sX_syncerModal , sY_syncerModal );
 $('#map-modal').fadeOut();
});

//×ボタンをクリックした際に閉じる処理
$('.close-modal').click(function(){ 
　window.scrollTo( sX_syncerModal , sY_syncerModal );
　$('#map-modal').fadeOut();
});</code></pre>
<p><span class="s1"></p>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">これでモーダルウィンドウを閉じると親画面の元の位置に戻ります。</div>
</div></div>
<h3>まとめ</h3>
<div class="simple-box3">
<ul>
<li>モーダルウインドウを開くときに親画面の表示位置を取得しておくこと。</li>
<li>モーダルウィンドウへの遷移後、親画面へ戻る際に取得位置を記載すること。</li>
<li><span class="marker">リンクでモーダルウィンドウへ遷移する際、HTMLのaタグhrefは書かない。</span></li>
</ul>
</div>
<p><span class="s1"></p>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">href=&#8221;&#8221;を残していて、モーダルウィンドウへ遷移した際にページ上部に戻ってしまい、悩みました。</div>
</div></div>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">hrefを消してしまうと、デフォルト設定のカーソルや下線などはなくなるのでCSSで設定する必要があるよ。</div>
</div></div>
<pre class="language-css"><code>a.mapinfo-show1{
　color: #0091a7;	
　text-decoration: underline;	
　cursor: pointer;
}</code></pre>
<p>&nbsp;</p>
<p style="text-align: center;">ーEndー</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mito-lab.com/jquery-modal-window/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】ヘッダー固定時にページ内リンクのズレを解消して記事の途中に飛ばすには？</title>
		<link>https://mito-lab.com/link_jump/</link>
					<comments>https://mito-lab.com/link_jump/#respond</comments>
		
		<dc:creator><![CDATA[mito]]></dc:creator>
		<pubDate>Wed, 05 Jun 2019 05:47:50 +0000</pubDate>
				<category><![CDATA[コーディングの勉強]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<guid isPermaLink="false">https://mito-lab.com/?p=765</guid>

					<description><![CDATA[こんにちは、mito（@mito_works）です！ 今回は、メニューヘッダーを固定して、メニューのリンクからページ内の他の場所へ移動するにはどう実装するか？書きます。  HTMLでの記載 lt;!--ヘッ]]></description>
										<content:encoded><![CDATA[<p class="p1"><span class="s1">こんにちは、mito（<a href="https://twitter.com/mito_works"><span class="s2">@mito_works</span></a>）です！</span></p>
<p>今回は、メニューヘッダーを固定して、メニューのリンクからページ内の他の場所へ移動するにはどう実装するか？書きます。</p>
<p class="p1"><span class="s1"></p>
<div class="balloon-box balloon-right balloon-none balloon-bg-gray clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2024/01/fukidashi.jpg" alt="mito" width="80" height="80"></div>
<div class="icon-name">mito</div>
<div class="balloon-serif">
<div class="balloon-content">position:fixedを使ってヘッダーを固定した場合、ページ内リンクの位置がヘッダーの高さ分ずれてしまったので、JavaScriptを使ってズレを調整しました。</div>
</div></div>
</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content"><span class="s1">JavaScript</span>で実装するとリンク先への移動にアニメーションをつけることが可能になるよ！</div>
</div></div>
<p>&nbsp;</p>
<h3>HTMLでの記載</h3>
<pre class="language-markup"><code>&lt;!--ヘッダー部分 --&gt;
&lt;header&gt;
 &lt;div class="header"&gt;
  &lt;a href="#taitle-program" &gt;プログラム&lt;/a&gt;
 &lt;/div&gt;
&lt;/header&gt;

&lt;!--ページの途中のタイトル部分 --&gt;
&lt;div class="program"&gt;
 &lt;h3 class="title-about" id="taitle-program"&gt;プログラム&lt;/h3&gt;
&lt;/div&gt;</code></pre>
<p>&lt;a&gt;タグは他のページへのリンクだけでなく、ページ内のリンクを作ることもできる。</p>
<ol>
<li>リンクの飛び先にidを指定</li>
<li>&lt;a&gt;タグのhref属性に&#8221;#id名&#8221;</li>
</ol>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">&lt;a&gt;タグをクリックすると、そのidの要素が表示されている場所まで移動するという動きになるよ！</div>
</div></div>
<h3>CSSでの記載</h3>
<p>ヘッダーの高さは90pxで固定しています。</p>
<pre class="language-css"><code>header {
  height: 90px;
  width: 100%;
  background-color: rgba(0, 145, 167, 0.9);
  position :fixed;
  top: 0;
  z-index: 10;
}</code></pre>
<h3>JavaScriptで調整する</h3>
<pre class="language-javascript"><code>//ナビゲーションからのページ内移動
//固定したヘッダ分だけ下げて表示
$('header a').click(function(){
　headerHight = 90;
　var id = $(this).attr('href');
　var position = $(id).offset().top;
　$('html, body').animate({'scrollTop': position-headerHight }, 500);
});</code></pre>
<p>&nbsp;</p>
<h4><span class="highlight">scrollTop</span>メソッド</h4>
<p>$(&#8216;html, body&#8217;).scrollTop(値); のように指定し、ページ最上部から<span class="highlight">値px</span>の位置に移動することができる。</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">scrollTopは通常$(&#8216;html, body&#8217;)に対して用いるので、セットで覚えておくとよいよ！</div>
</div></div>
<h4>animateメソッド</h4>
<p>CSSの値だけでなく、scrollTopなどの値も変更できる。<br />
$(&#8216;html, body&#8217;).animate({&#8216;scrollTop&#8217;: 0}, 時間); のように指定する。</p>
<div class="balloon-box balloon-left balloon-gray balloon-bg-none clearfix">
<div class="balloon-icon maru"><img src="https://mito-lab.com/wp-content/uploads/2019/05/dog2.jpg" alt="momo" width="80" height="80"></div>
<div class="icon-name">momo</div>
<div class="balloon-serif">
<div class="balloon-content">変更するプロパティ、値、アニメーションの速さの順で、animateの引数を書くよ！</div>
</div></div>
<h4><span class="highlight">offset</span>メソッド</h4>
<p>要素の表示位置を取得することができます。offsetメソッドは、ページの上端からの距離とページの左端からの距離が連想配列の形で返ってくる。<br />
offset().topとすると、ページの上端からの距離が取得できる。</p>
<div class="jin-photo-title"><span class="jin-fusen3">例えば</span></div>
<p>HTMLで記載しているh1のプログラムの位置が知りたい場合<br />
$(&#8216;h1&#8217;).offset();とすると　{top:50,left:100}という連想配列が返ってくる。$(&#8216;h1&#8217;).offset.top();とすると、ページ上端からの距離のみなので50という値が返ってくる。</p>
<h4>attrメソッド</h4>
<p>href属性の値を取得し、offsetメソッドでその要素の位置を取得することでページ内リンクを実装できる。</p>
<pre class="language-javascript"><code>var id = $(this).attr('href');
var position = $(id).offset().top;</code></pre>
<ol>
<li>idにクイックしたボタンの飛び先を取得</li>
<li>飛び先の最上部からの距離を取得</li>
</ol>
<p>今回はヘッダーの高さ分引き算をしています。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mito-lab.com/link_jump/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
