<?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>JavaScript アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/javascript/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Fri, 15 Nov 2024 08:56:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>JavaScript アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/javascript/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>Visual Studio Codeのインストールや日本語化設定</title>
		<link>https://nyanblog2222.com/programming/javascript/5187/</link>
					<comments>https://nyanblog2222.com/programming/javascript/5187/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 25 Mar 2023 15:12:41 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[VSCode]]></category>
		<category><![CDATA[環境構築]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=5187</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1.png 1280w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />本記事ではVisual Studio Codeの環境構築を行います。 目次 Visual Studio Code（VSCode）とはVisual Studio CodeのインストールVisual Studio Codeに [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/5187/">Visual Studio Codeのインストールや日本語化設定</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1.png 1280w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_1-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>本記事ではVisual Studio Codeの環境構築を行います。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Visual Studio Code（VSCode）とは</a></li><li><a href="#toc2" tabindex="0">Visual Studio Codeのインストール</a></li><li><a href="#toc3" tabindex="0">Visual Studio Codeに拡張機能をインストール</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Visual Studio Code（VSCode）とは</span></h2>



<p><span class="marker-under">Visual Studio Code</span>はMicrosoftが開発している<br>Windows、Linux、macOS、webで<span class="bold-red">無料で提供</span>されているソースコードエディタです。</p>



<p>調べるときに良く<span class="marker-under">VSCode</span>とも出てきます。</p>



<p><span class="bold-red">最大の特徴</span>は<span class="marker-under">拡張機能が豊富</span>にあり、<br>・英語・中国語・<span class="marker-under">日本語表示</span><br>・各開発言語の開発効率を向上させる機能（ソースコード入力補助等）<br>様々あるため、現在最も多く利用されているエディタといわれています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>なにより<span class="marker-under">多くの機能が無料で使える</span>！<br>これに尽きます。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">Visual Studio Codeのインストール</span></h2>



<p>さっそくVisual Studio Codeをインストールしていきます。<br>まずは<a rel="noopener" href="https://code.visualstudio.com/" target="_blank">Visual Studio Codeのページ</a>から<span class="bold-red">赤枠</span>をクリックし、ファイルをダウンロードします。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="596" height="374" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Visual-Studio-Code-Code-Editing-Redefined-Google-Chrome_2020-5-12_22-39-14_No-00.png" alt="VSCode　ダウンロード" class="wp-image-459" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Visual-Studio-Code-Code-Editing-Redefined-Google-Chrome_2020-5-12_22-39-14_No-00.png 596w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Visual-Studio-Code-Code-Editing-Redefined-Google-Chrome_2020-5-12_22-39-14_No-00-300x188.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></figure>



<p><span class="bold-red">ダウンロードしたファイル「VSCodeUserSetup-x64-[ver名].exe」</span>をダブルクリックし<br>インストールを開始します。</p>



<p>セットアップ画面が開いたら<br><span class="bold-red">「同意する」</span>にチェックをつけて、<span class="bold-red">「次へ」</span>をクリックします。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="539" height="427" src="https://nyanblog2222.com/wp-content/uploads/2020/05/dab39e13a9447a6af6677a51575cfbac-4.png" alt="VSCode セットアップ" class="wp-image-464" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/dab39e13a9447a6af6677a51575cfbac-4.png 539w, https://nyanblog2222.com/wp-content/uploads/2020/05/dab39e13a9447a6af6677a51575cfbac-4-300x238.png 300w" sizes="(max-width: 539px) 100vw, 539px" /></figure>



<p>インストール先を指定します。<br>特に変更する必要がなければそのまま<span class="bold-red">「次へ」</span>をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="539" height="427" src="https://nyanblog2222.com/wp-content/uploads/2020/05/722d363e728379067c00b01a068530a0.png" alt="VSCode セットアップ" class="wp-image-465" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/722d363e728379067c00b01a068530a0.png 539w, https://nyanblog2222.com/wp-content/uploads/2020/05/722d363e728379067c00b01a068530a0-300x238.png 300w" sizes="auto, (max-width: 539px) 100vw, 539px" /></figure>



<p>スタートメニューにショートカットを作成します。<br>特にこだわりがなければ、このまま<span class="bold-red">「次へ」</span>をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="539" height="427" src="https://nyanblog2222.com/wp-content/uploads/2020/05/67c57268ebc9d8c32aaea6c8e913c9a2.png" alt="VSCode セットアップ" class="wp-image-466" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/67c57268ebc9d8c32aaea6c8e913c9a2.png 539w, https://nyanblog2222.com/wp-content/uploads/2020/05/67c57268ebc9d8c32aaea6c8e913c9a2-300x238.png 300w" sizes="auto, (max-width: 539px) 100vw, 539px" /></figure>



<p>ここでは、インストール時の追加要素を選択することができます。</p>



<p>今回は変更していませんが、おすすめは以下の3つです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p>・エクスプローラーのファイル　コンテキストメニューに[Code で開く]アクションを追加する<br>・エクスプローラーのディレクトリ　コンテキストメニューに[Code で開く]アクションを追加する<br>・<span class="bold-red">PATHへの追加</span></p>
</div>



<p>他のサイトでよくインストール作業の内容に関して、環境変数に設定する内容が記載されていますが、ここで<span class="bold-red">PATHへの追加</span>にチェックを入れておくと自分で作業する必要が無くなります。<br>そのため、チェックをつけた状態で<span class="bold-red">「次へ」</span>をクリックしましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="539" height="427" src="https://nyanblog2222.com/wp-content/uploads/2020/05/0182d5ad9156e01eb0f854096ccca089-1.png" alt="VSCode セットアップ" class="wp-image-473" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/0182d5ad9156e01eb0f854096ccca089-1.png 539w, https://nyanblog2222.com/wp-content/uploads/2020/05/0182d5ad9156e01eb0f854096ccca089-1-300x238.png 300w" sizes="auto, (max-width: 539px) 100vw, 539px" /></figure>



<p>インストールの確認前画面です。<br>内容に問題なければ<span class="bold-red">「インストール」</span>をクリックしてください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="539" height="427" src="https://nyanblog2222.com/wp-content/uploads/2020/05/98bfa2948a2cf57531107bf79c2b4c77.png" alt="VSCode セットアップ" class="wp-image-469" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/98bfa2948a2cf57531107bf79c2b4c77.png 539w, https://nyanblog2222.com/wp-content/uploads/2020/05/98bfa2948a2cf57531107bf79c2b4c77-300x238.png 300w" sizes="auto, (max-width: 539px) 100vw, 539px" /></figure>



<p>インストールが完了したら<span class="bold-red">「完了」</span>をクリックし、セットアップ画面を閉じてください。<br>これでVisual Studio Codeのインストールが完了です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="539" height="427" src="https://nyanblog2222.com/wp-content/uploads/2020/05/1da942a1b0f32f831099a98ad72c5fb1.png" alt="VSCode セットアップ" class="wp-image-471" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/1da942a1b0f32f831099a98ad72c5fb1.png 539w, https://nyanblog2222.com/wp-content/uploads/2020/05/1da942a1b0f32f831099a98ad72c5fb1-300x238.png 300w" sizes="auto, (max-width: 539px) 100vw, 539px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">Visual Studio Codeに拡張機能をインストール</span></h2>



<p>拡張機能でインストールする方法を紹介します。<br>まず使うであろう<span class="bold-red">「日本語化」</span>の拡張機能をインストールします。</p>



<p>Visual Studio Codeを開きます。</p>



<p>左側のアクティビティバーにある、<span class="bold-red">赤枠「拡張機能」</span>をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="619" height="464" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-47_No-00-min.png" alt="Visual Studio Code" class="wp-image-475" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-47_No-00-min.png 619w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-47_No-00-min-300x225.png 300w" sizes="auto, (max-width: 619px) 100vw, 619px" /></figure>



<p>「Marketplace」に<span class="bold-red">「Japanese」</span>と入力してください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="620" height="183" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-58_No-00-min-5.png" alt="" class="wp-image-485" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-58_No-00-min-5.png 620w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-58_No-00-min-5-300x89.png 300w" sizes="auto, (max-width: 620px) 100vw, 620px" /></figure>



<p><span class="bold-red">「Japanese Language Pack for Visual Studio Code」</span><br>のインストールを行ってください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="620" height="177" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-58_No-00-min-4.png" alt="" class="wp-image-484" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-58_No-00-min-4.png 620w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-55-58_No-00-min-4-300x86.png 300w" sizes="auto, (max-width: 620px) 100vw, 620px" /></figure>



<p>locale.jsonで日本語に設定します。<br><span class="bold-red">「Ctrl」+「Shift」+「P」</span>でコマンドパレットを起動します。</p>



<p>「configure」と入力すると予測変換が出てくるので<br><span class="bold-red">「Configure Display Language」</span>をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="617" height="179" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-59-8_No-00-min.png" alt="Visual Studio Code　日本語" class="wp-image-483" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-59-8_No-00-min.png 617w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-59-8_No-00-min-300x87.png 300w" sizes="auto, (max-width: 617px) 100vw, 617px" /></figure>



<p><span class="bold-red">「ja」</span>(japanese)をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="617" height="180" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-59-11_No-00-min.png" alt="Visual Studio Code　日本語" class="wp-image-486" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-59-11_No-00-min.png 617w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Welcome-Visual-Studio-Code_2020-5-11_8-59-11_No-00-min-300x88.png 300w" sizes="auto, (max-width: 617px) 100vw, 617px" /></figure>



<p>再起動するか確認するメッセージボックスが出ますので、<span class="bold-red">「Restart」</span>をクリックしてください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="567" height="205" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Visual-Studio-Code_2020-5-11_8-59-22_No-00.png" alt="Visual Studio Code　再起動" class="wp-image-488" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Visual-Studio-Code_2020-5-11_8-59-22_No-00.png 567w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_Visual-Studio-Code_2020-5-11_8-59-22_No-00-300x108.png 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p>これで日本語化の完了です。</p>



<p></p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/5187/">Visual Studio Codeのインストールや日本語化設定</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/5187/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者】JavaScriptでTODOリスト作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/5090/</link>
					<comments>https://nyanblog2222.com/programming/5090/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 09 Mar 2023 15:31:35 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web制作]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[TODOリスト]]></category>
		<category><![CDATA[サンプル]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=5090</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308-300x157.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308-768x401.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" />JavaScriptでTODOリストを作成しました。 シンプルでサンプル・解説ありなので、初心者のJavaScriptの勉強用に良かったら作成してみてください♪ 目次 はじめに実装内容（フロー）HTMLCSSJavaSc [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/5090/">【初心者】JavaScriptでTODOリスト作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308-300x157.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308-768x401.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" />
<p>JavaScriptでTODOリストを作成しました。</p>



<p>シンプルでサンプル・解説ありなので、初心者のJavaScriptの勉強用に良かったら作成してみてください♪</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">実装内容（フロー）</a></li><li><a href="#toc3" tabindex="0">HTML</a></li><li><a href="#toc4" tabindex="0">CSS</a></li><li><a href="#toc5" tabindex="0">JavaScript</a><ol><li><a href="#toc6" tabindex="0">コード</a></li><li><a href="#toc7" tabindex="0">解説</a><ol><li><a href="#toc8" tabindex="0">・グローバル変数の定義・ページ読み込み後、変数にHTML要素を設定</a></li><li><a href="#toc9" tabindex="0">・タスク追加</a><ol><li><a href="#toc10" tabindex="0">・完了ボタンクリック</a></li><li><a href="#toc11" tabindex="0">・削除ボタンクリック</a></li></ol></li><li><a href="#toc12" tabindex="0">・チェックしたタスクを一括削除：deleteTask()</a></li><li><a href="#toc13" tabindex="0">・タスク内にあるボタンを作成：createTaskButton(class_name, name)</a></li></ol></li></ol></li><li><a href="#toc14" tabindex="0">デモ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずはTODOリストの機能を考えます。<br>今回は以下の機能を持たせて実装しました。</p>



<p>簡単な機能しか実装していませんが、好みに応じてカスタマイズしてみてください。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list">
<li>タスクを追加、完了、削除</li>



<li>タスクをまとめて削除する</li>
</ul>
</div>



<p>作成のイメージ図がこちらです。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308.png" alt="" class="wp-image-5101" width="687" height="470" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308.png 687w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308-300x205.png 300w" sizes="auto, (max-width: 687px) 100vw, 687px" /></figure>



<h2 class="wp-block-heading"><span id="toc2">実装内容（フロー）</span></h2>



<p>次に箇条書きで処理フローを記述します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ol class="wp-block-list">
<li>変数を設定</li>



<li>タスク追加ボタン押下時：
<ol class="wp-block-list">
<li>タスク名の入力値チェック</li>



<li>タスクに必要な要素を追加する</li>
</ol>
</li>



<li>チェックしたタスクを一括削除ボタン押下時：
<ol class="wp-block-list">
<li>チェックしたタスクをを削除する</li>
</ol>
</li>



<li>完了ボタン押下時： 
<ol class="wp-block-list">
<li>ボタンを押下したタスクを完了</li>
</ol>
</li>



<li>削除ボタン押下時： 
<ol class="wp-block-list">
<li>ボタンを押下したタスクを削除</li>
</ol>
</li>
</ol>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>シンプルな機能だけ持たせています。<br>改善点は色々思い当たりますが、完了状態→タスク未完了状態に戻したりがありますね。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc3">HTML</span></h2>



<p>まずはHTMLを作成していきます。<br>作成しているのは、大きく以下の3つです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ol class="wp-block-list">
<li>タイトル（TODOリスト）</li>



<li>タスク名登録・タスク複数削除</li>



<li>タスク一覧（完了・削除ボタン）</li>
</ol>
</div>



<pre class="wp-block-code html"><code>&lt;body&gt;
  &lt;div class="wrapper"&gt;
    &lt;h1 id="header"&gt;TODOリスト&lt;/h1&gt;
    &lt;div id="input-wrap"&gt;
      &lt;input id="task-name" type="text" placeholder="タスク名を入力してください" /&gt;
      &lt;button onclick="addTask()"&gt;タスクを追加&lt;/button&gt;
      &lt;button class="deleteTask-button" onclick="deleteTask()"&gt;チェックしたタスクを削除&lt;/button&gt;
    &lt;/div&gt;
    &lt;div id="main-wrap"&gt;
      &lt;form name="task_form"&gt;
        &lt;ul id="todo-list"&gt;&lt;/ul&gt;
      &lt;/form&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/body&gt;</code></pre>



<p>「タスクを追加」ボタンにクリックイベント&#8221;<span class="marker-under">addTask()</span>&#8220;<br>「チェックしたタスクを削除」ボタンにクリックイベント&#8221;<span class="marker-under">deleteTask()</span>&#8220;</p>



<p>を設定しています。</p>



<h2 class="wp-block-heading"><span id="toc4">CSS</span></h2>



<p>次にCSSでスタイルを決定します。<br>この辺りは好きなようにカスタマイズをしていただいて良いと思います！<br>※ 先にreset.cssを読み込んでからスタイルを設定していますので、注意してください。</p>



<p>特に記載するところはありませんが、<br>61行目「line-through」、87行目「disabled」はJavaScriptで「完了」ボタン押下時のイベントで使用するため、設定してください。</p>



<pre class="wp-block-code css"><code>@charset "utf-8";

/*全体*/
.wrapper{
  max-width: 600px;
  margin: 0 auto;
  color: #666;
}
#header {
  text-align: center;
  font-size: 24px;
  width: 100%;
  margin: 1.5rem 0;
}
#main-wrap {
  margin-bottom: 1.5rem;
}

/* 入力 */
#input-wrap {
  margin: 0 auto;
  width: 80%;
}
#input-wrap input{
  width: 40%;
  height: 24px;
  margin-right: 1rem;
}

/* リスト */
#main-wrap {
  text-align: center;
  margin: 0 auto;
  width: 70%;
  min-height: 120px;
  border: 1px solid #aaa;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
  padding: 0.8rem 2rem;
}

#main-wrap ul {
  padding-inline-start: 0
}

#main-wrap li {
  text-align: left;
  list-style-type: none;
  border-bottom: 1px dashed #aaa;
  padding: 0.8rem 0;
  display: flex;
  line-height: 32px;
}

#main-wrap p {
  width: 60%;
}
#main-wrap p.line-through {
  text-decoration: line-through;
}

/*ボタン*/
button{
  height: 32px;

  cursor: pointer;
  background: #B78D4A;
  color: #fff;
  border: 1px solid #B78D4A;
  border-radius: 4px;
  font-size: 1rem;
  padding: 0.2rem 1.5rem;
  margin-bottom: 0.5rem;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  -ms-border-radius: 4px;
  -o-border-radius: 4px;
}

button:hover{
  background-color: #D4BB92;
  border-color: #D4BB92;
}
button.disabled {
  background-color: #D4BB92;
  border-color: #D4BB92;
  cursor: not-allowed;
  pointer-events: none;
}

button.deleteTask-button {
  margin-bottom: 1.5rem;
}

.end-button, .delete-button {
  margin-bottom: 0;
  padding: 0.2rem 1rem;
}

.end-button {
  margin-right: 0.4rem;
}

</code></pre>



<h2 class="wp-block-heading"><span id="toc5">JavaScript</span></h2>



<p>JavaScriptのコードと解説をしていきます。</p>



<h3 class="wp-block-heading"><span id="toc6">コード</span></h3>



<p>次項で詳しく解説していますが、コメントでも多少記述しています。<br>コピペも可能です！</p>



<pre class="wp-block-code javascript"><code>var todoList;
window.onload = function () {
  todoList = document.getElementById('todo-list');
}

// タスク追加
function addTask() {
  var taskName = document.getElementById('task-name');

  // タスク名の入力がなければ処理を終了
  if(taskName.value.Trim() == "") return;

  // liに要素を追加
  var li = document.createElement('li');

  // liにinputを追加
  var input = document.createElement('input');
  input.setAttribute('type', 'checkbox');
  input.setAttribute('name', 'task');
  li.appendChild(input);

  // liにpを追加
  var p = document.createElement('p');
  p.innerHTML = taskName.value;
  li.appendChild(p);

  // liにbuttonを追加
  var endButton = createTaskButton('end-button', '完了');
  li.appendChild(endButton);

  // liにbuttonを追加
  var deleteButton = createTaskButton('delete-button', '削除');
  li.appendChild(deleteButton);

  // ulにliを追加
  todoList.appendChild(li);

  taskName.value = "";

  // イベント処理
  // 完了ボタンクリック
  endButton.addEventListener('click', function(e){
    e.preventDefault();
    this.setAttribute('class', 'end-button disabled');
    this.previousElementSibling.setAttribute('class', 'line-through');
  });
  // 削除ボタンクリック
  deleteButton.addEventListener('click', function(e){
    e.preventDefault();
    todoList.removeChild(this.closest('li'));
  });
}

// チェックしたタスクを一括削除
function deleteTask() {
  var inputList = document.task_form.task;
  for(var i=inputList.length-1;i&gt;=0;i--) {
    if(inputList&#91;i].checked){
      todoList.removeChild(inputList&#91;i].closest('li'));
    }
  }
}

// タスク内にあるボタンを作成
function createTaskButton(className, name) {
  var btn = document.createElement('button');
  btn.setAttribute('class', className);
  btn.innerHTML = name;
  return btn;
}</code></pre>



<h3 class="wp-block-heading"><span id="toc7">解説</span></h3>



<p>先述したコードに対して細かく解説していきます！</p>



<h4 class="wp-block-heading"><span id="toc8">・グローバル変数の定義・ページ読み込み後、変数にHTML要素を設定</span></h4>



<pre class="wp-block-code javascript"><code>var todoList;
window.onload = function () {
  todoList = document.getElementById('todo-list');
}</code></pre>



<p>ページ読み込み後に<span class="marker-under">&lt;ul&gt;のid&#8217;todo-list&#8217;を取得し、変数todoListに設定</span>しています。</p>



<h4 class="wp-block-heading"><span id="toc9">・タスク追加</span></h4>



<pre class="wp-block-code javascript"><code>function addTask() {
  var taskName = document.getElementById('task-name');

  // タスク名の入力がなければ処理を終了
  if(taskName.value.Trim() == "") return;

  // liに要素を追加
  var li = document.createElement('li');

  // liにinputを追加
  var input = document.createElement('input');
  input.setAttribute('type', 'checkbox');
  input.setAttribute('name', 'task');
  li.appendChild(input);

  // liにpを追加
  var p = document.createElement('p');
  p.innerHTML = taskName.value;
  li.appendChild(p);

  // liにbuttonを追加
  var endButton = createTaskButton('end-button', '完了');
  li.appendChild(endButton);

  // liにbuttonを追加
  var deleteButton = createTaskButton('delete-button', '削除');
  li.appendChild(deleteButton);

  // ulにliを追加
  todoList.appendChild(li);

  taskName.value = "";

  // イベント処理
  // のちほど説明のため省略
}</code></pre>



<p>「タスクを追加」ボタン押下時のイベントを実装します。</p>



<pre class="wp-block-code javascript"><code>var taskName = document.getElementById('task-name');</code></pre>



<p>タスク名を入力する<span class="marker-under">&lt;input&gt;のid&#8217;task-name&#8217;を取得し、変数taskNameに設定</span>しています。</p>



<pre class="wp-block-code javascript"><code>// タスク名の入力がなければ処理を終了
if(taskName.value.Trim() == "") return;
</code></pre>



<p>タスク名の入力値が空であれば処理を終了する。<br><span class="marker-under">Trim()は入力値の前後の空白を除きます</span>。</p>



<pre class="wp-block-code javascript"><code>// liに要素を追加
var li = document.createElement('li');

// liにinputを追加
var input = document.createElement('input');
input.setAttribute('type', 'checkbox');
input.setAttribute('name', 'task');
li.appendChild(input);

// liにpを追加
var p = document.createElement('p');
p.innerHTML = taskName.value;
li.appendChild(p);

// liにbuttonを追加
var endButton = createTaskButton('end-button', '完了');
li.appendChild(endButton);

// liにbuttonを追加
var deleteButton = createTaskButton('delete-button', '削除');
li.appendChild(deleteButton);
</code></pre>



<p>&lt;li&gt;の要素を作成します。&lt;li&gt;の中には以下の要素を作ります。</p>



<p>・チェックボックス<br>・タスク名<br>・完了ボタン<br>・削除ボタン</p>



<pre class="wp-block-code javascript"><code>// ulにliを追加
todoList.appendChild(li);
</code></pre>



<p>作成した&lt;li&gt;を&lt;ul&gt;に追加します。</p>



<pre class="wp-block-code javascript"><code>taskName.value = "";</code></pre>



<p>入力欄をリセットするため、空文字（&#8221;&#8221;）を設定します。</p>



<h5 class="wp-block-heading"><span id="toc10">・完了ボタンクリック</span></h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="692" height="437" src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_2.png" alt="" class="wp-image-5131" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_2.png 692w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_2-300x189.png 300w" sizes="auto, (max-width: 692px) 100vw, 692px" /></figure>



<pre class="wp-block-code javascript"><code>endButton.addEventListener('click', function(e){
  e.preventDefault();
  this.setAttribute('class', 'end-button disabled');
  this.previousElementSibling.setAttribute('class', 'line-through');
});</code></pre>



<p>各タスクの「完了」ボタンを実装します。</p>



<pre class="wp-block-code javascript"><code>e.preventDefault();</code></pre>



<p>こちらの関数はイベントのデフォルト動作をキャンセルします。</p>



<pre class="wp-block-code javascript"><code>this.setAttribute('class', 'end-button disabled');</code></pre>



<p>end_button[完了ボタン]にclass属性&#8217;end-button <span class="marker-under">disabled</span>&#8216;を設定します。<br>disabledクラスはボタンを非活性するスタイルを設定します。</p>



<p><span class="marker-under">thisはendButton</span>を指します。</p>



<pre class="wp-block-code javascript"><code>this.previousElementSibling.setAttribute('class', 'line-through');</code></pre>



<p>タスク名&lt;p&gt;に取消線のクラス<span class="marker-under">&#8216;line-through&#8217;</span>を設定します。</p>



<p><span class="marker-under">previousElementSibling</span><span class="marker-under">：</span><span class="marker-under">一つ前の要素</span>。endButton[完了ボタン]の一つ前の要素&lt;p&gt;を指します。</p>



<h5 class="wp-block-heading"><span id="toc11">・削除ボタンクリック</span></h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="690" height="456" src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_4.png" alt="" class="wp-image-5149" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_4.png 690w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_4-300x198.png 300w" sizes="auto, (max-width: 690px) 100vw, 690px" /></figure>



<pre class="wp-block-code javascript"><code>deleteButton.addEventListener('click', function(e){
  e.preventDefault();
  todoList.removeChild(this.closest('li'));
});</code></pre>



<p>各タスクの「削除」ボタンを実装します。<br>※ e.preventDefault();は先ほど出てきたので省略</p>



<pre class="wp-block-code javascript"><code>todo_list.removeChild(this.closest('li'));</code></pre>



<p>タスクを削除します。</p>



<p><span class="marker-under">removeChild()</span>：&lt;ul&gt;（todoList）の子要素を削除します。<br><span class="marker-under">this.closest(&#8216;li&#8217;)</span>：クリックしたボタンthis(deleteButton)の直近に存在する親要素、もしくは要素自身を返します。</p>



<h4 class="wp-block-heading"><span id="toc12">・チェックしたタスクを一括削除：deleteTask()</span></h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="434" src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_3-1024x434.png" alt="" class="wp-image-5140" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_3-1024x434.png 1024w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_3-300x127.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_3-768x326.png 768w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230308_3.png 1382w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<pre class="wp-block-code javascript"><code>function deleteTask() {
  var inputList = document.task_form.task;
  for(var i=inputList.length-1;i&gt;=0;i--) {
    if(inputList&#91;i].checked){
      todoList.removeChild(inputList&#91;i].closest('li'));
    }
  }
}</code></pre>



<p><span class="marker-under">「チェックしたタスクを削除」ボタン押下時に呼ばれる関数</span>&#8220;deleteTask()&#8221;を作成します。<br>チェックしたタスクを一度に削除する処理を行います。</p>



<pre class="wp-block-code javascript"><code>var inputList = document.task_form.task;</code></pre>



<p>&lt;form name=&#8221;task_form&#8221;&gt;の中の&lt;input name=&#8221;task&#8221;&gt;を一覧で取得して変数inputListに設定しています。</p>



<p>&#8220;task_form&#8221;と&#8221;task&#8221;はname属性で指定した値です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>htmlファイルと見比べながら確認すると分かりやすいです。</p>
</div></div>



<pre class="wp-block-code javascript"><code>// ①
for(var i=inputList.length-1;i&gt;=0;i--) {
  // ②
  if(inputList&#91;i].checked){
    // ③
    todo_list.removeChild(inputList&#91;i].closest('li'));
  }
}</code></pre>



<p>チェックしたタスク&lt;li&gt;を削除していきます。</p>



<p>①for文でinputListを後ろから一つずつ&lt;input&gt;を回し<br>②if文でチェックボックスでチェックしているか確認<br>※ チェックされているときはcheckedがtrue<br>③trueであればリスト（todoList）からliを削除<br>※ removeChildは「削除ボタンクリック」で開設済み</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p><span class="marker-under">①で後ろからfor文を回している理由</span>は、回しながらliを削除しているので<br>添字が変わってしまうことにより、チェックしているタスクが全て削除されなくなるというのを防いでいます。<br>※ ★このあたりは文章だと分かりずらいので、今後時間があれば図にするかもしれません…。</p>
</div></div>



<h4 class="wp-block-heading"><span id="toc13">・タスク内にあるボタンを作成：createTaskButton(class_name, name)</span></h4>



<pre class="wp-block-code javascript"><code>function createTaskButton(className, name) {
  var btn = document.createElement('button');
  btn.setAttribute('class', className);
  btn.innerHTML = name;
  return btn;
}</code></pre>



<p><span class="marker-under">タスクの「完了」「削除」ボタンを作成する関数</span>です。</p>



<pre class="wp-block-code javascript"><code>var btn = document.createElement('button');</code></pre>



<p>&lt;botton&gt;の要素を作成します。</p>



<pre class="wp-block-code javascript"><code>btn.setAttribute('class', className);
btn.innerHTML = name;</code></pre>



<p>ボタンに属性classを設定、innerHTMLにボタンに表示する内容を設定します。</p>



<p>最後にボタン（要素）を返します。</p>



<h2 class="wp-block-heading"><span id="toc14">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/todolist1/" target="_blank">こちらがデモページ</a>になります。</p>



<p>良かったら試してみてください♪</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/5090/">【初心者】JavaScriptでTODOリスト作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/5090/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JS】jQueryでloadが効かない場合の対処法</title>
		<link>https://nyanblog2222.com/programming/5050/</link>
					<comments>https://nyanblog2222.com/programming/5050/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Mon, 02 Jan 2023 14:21:21 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[on]]></category>
		<category><![CDATA[unload]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=5050</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2023/01/20230102.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2023/01/20230102.png 800w, https://nyanblog2222.com/wp-content/uploads/2023/01/20230102-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/01/20230102-768x401.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" />今更な内容にはなりますが…。 jQueryでは2から3にバージョンが上がった際、load関数が廃止されたためon関数を使用して対処するようになりました。 …が、それでも上手くできない…。となったときの備忘録です。まずは、 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/5050/">【JS】jQueryでloadが効かない場合の対処法</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2023/01/20230102.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2023/01/20230102.png 800w, https://nyanblog2222.com/wp-content/uploads/2023/01/20230102-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/01/20230102-768x401.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" />
<p>今更な内容にはなりますが…。</p>



<p>jQueryでは2から3にバージョンが上がった際、<span class="marker-under">load関数が廃止されたためon関数を使用</span>して対処するようになりました。</p>



<p>…が、それでも上手くできない…。となったときの備忘録です。<br>まずは、load関数からon関数に書き換える方法と、他、注意事項を載せています。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">on関数に書き換え</a></li><li><a href="#toc2" tabindex="0">注意事項</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">on関数に書き換え</span></h2>



<p>イベント関連の処理clickイベント同様に、各関数（load、unload、error）での書き方は使用できなくなり、on関数での記述になりました。</p>



<p>■2.Xの書き方</p>



<pre class="wp-block-code javascript"><code>$(window).load(function() {
  // ・・・処理
});

$(window).unload(function() {
  // ・・・処理
});

$(window).error(function() {
  // ・・・処理
});</code></pre>



<p>■3.Xの書き方</p>



<pre class="wp-block-code javascript"><code>$(window).on('load', function() {
  // ・・・処理
});

$(window).on('unload', function() {
  // ・・・処理
});

$(window).on('error', function() {
  // ・・・処理
});</code></pre>



<h2 class="wp-block-heading"><span id="toc2">注意事項</span></h2>



<p>注意事項ですが、<span class="marker-under-red">load処理</span>を行う際に以下のように <strong><span class="marker-under">$(function () {});</span></strong> で囲ってしまうとエラーが起こってしまうので注意してください。&nbsp;</p>



<p><strong><span class="marker-under">$(function () {});</span></strong> は $(document).ready(function() {}); と同じ処理で、ready処理はload処理とは実行するタイミングが異なるため、エラーになってしまいます。</p>



<p>■書き方</p>



<pre class="wp-block-code javascript"><code>$(function () {
  // ・・・処理1
});

$(window).on('load', function() {
  // ・・・処理2
});</code></pre>



<p>■エラー</p>



<pre class="wp-block-code javascript"><code>$(function () {
  // ・・・処理1

  $(window).on('load', function() {
    // ・・・処理2
  });
});</code></pre>



<p>★readとloadの違いの記事を書くかもしれません。</p>



<p></p>



<p></p>



<p></p>
<p>投稿 <a href="https://nyanblog2222.com/programming/5050/">【JS】jQueryでloadが効かない場合の対処法</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/5050/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者】JavaScriptでおみくじの作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/4764/</link>
					<comments>https://nyanblog2222.com/programming/4764/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Tue, 06 Sep 2022 14:43:10 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ramdom]]></category>
		<category><![CDATA[おみくじ]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4764</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/66.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/66.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/66-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/66-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/66-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回はJavaScriptでおみくじを作成しました。三段階で作成してみましたので、初心者の方が勉強するのにおすすめですよ♪ 段階としては三段階で作成していきます。 目次 ボタンを押しておみくじを表示ソースコード解説おみく [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/4764/">【初心者】JavaScriptでおみくじの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/66.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/66.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/66-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/66-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/66-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回はJavaScriptでおみくじを作成しました。<br>三段階で作成してみましたので、初心者の方が勉強するのにおすすめですよ♪</p>



<p>段階としては三段階で作成していきます。</p>



<ul class="wp-block-list">
<li>ボタンを押しておみくじを表示する</li>



<li>おみくじの結果の確率を設定する</li>



<li>ボタンを押しておみくじルーレットを表示する<br>おみくじは画像で表示する</li>
</ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ボタンを押しておみくじを表示</a><ol><li><a href="#toc2" tabindex="0">ソースコード</a></li><li><a href="#toc3" tabindex="0">解説</a></li></ol></li><li><a href="#toc4" tabindex="0">おみくじの結果の確率を設定</a><ol><li><a href="#toc5" tabindex="0">ソースコード</a></li><li><a href="#toc6" tabindex="0">解説</a></li></ol></li><li><a href="#toc7" tabindex="0">ボタンを押しておみくじルーレットを表示</a><ol><li><a href="#toc8" tabindex="0">ソースコード</a><ol><li><a href="#toc9" tabindex="0">HTML</a></li><li><a href="#toc10" tabindex="0">JavaScript</a></li></ol></li><li><a href="#toc11" tabindex="0">解説</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ボタンを押しておみくじを表示</span></h2>



<p>まずは一番簡単なコードで作成していきます。</p>



<p><a href="https://nyanblog2222.com/demo/omikuji1/" target="_blank">こちらがデモページ</a>になります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="415" height="445" src="https://nyanblog2222.com/wp-content/uploads/2022/09/2022-09-05-232523.png" alt="" class="wp-image-4791" srcset="https://nyanblog2222.com/wp-content/uploads/2022/09/2022-09-05-232523.png 415w, https://nyanblog2222.com/wp-content/uploads/2022/09/2022-09-05-232523-280x300.png 280w" sizes="auto, (max-width: 415px) 100vw, 415px" /></figure>



<h3 class="wp-block-heading"><span id="toc2">ソースコード</span></h3>



<p>こちらがソースコードです。</p>



<pre class="wp-block-code html"><code>&lt;script&gt;
  window.onload = function () {
    // おみくじ
    // この順番が良い順番らしい（吉と中吉が逆になることも）
    const list = &#91;"大吉","吉","中吉","小吉","末吉","凶","大凶"];

    document.getElementById("button").onclick = function () {
      var random = Math.floor(Math.random() * list.length);
      document.getElementById("result").textContent = list&#91;random];
    }
  }
&lt;/script&gt;

&lt;body&gt;
  &lt;div class="wrapper"&gt;
    &lt;p&gt;おみくじ&lt;br&gt;ボタンをクリックしてください。&lt;/p&gt;
    &lt;div class="wrapper-button"&gt;
      &lt;button id="button" class="button"&gt;おみくじを引く&lt;/button&gt;
    &lt;/div&gt;
    &lt;p id="result"&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/body&gt;</code></pre>



<h3 class="wp-block-heading"><span id="toc3">解説</span></h3>



<p><span class="marker-under">HTML</span></p>



<ul class="wp-block-list">
<li>17～19行目　ボタン：押すことでおみくじが引く</li>



<li>20行目　pタグ：おみくじの結果を表示</li>
</ul>



<p><span class="marker-under">JavaScript</span></p>



<ul class="wp-block-list">
<li>5行目　おみくじの結果をリストに設定</li>



<li>7～10行目　ボタンのクリックイベント</li>



<li>8行目　random関数を利用して0～リストの数までのランダムの数を作成<br>　　　  floor関数で小数を切り捨てて整数にする</li>



<li>9行目　8行目で作成した数字を使っておみくじ結果リストにアクセスし、id=&#8221;result&#8221;に設定</li>
</ul>



<h2 class="wp-block-heading"><span id="toc4">おみくじの結果の確率を設定</span></h2>



<p>続いて、おみくじの結果の確率を設定して出やすさを変えていきます。</p>



<p><a href="https://nyanblog2222.com/demo/omikuji2/" target="_blank">こちらがデモページ</a>になります。</p>



<h3 class="wp-block-heading"><span id="toc5">ソースコード</span></h3>



<p>こちらがソースコードです。</p>



<pre class="wp-block-code html"><code>&lt;script&gt;
  window.onload = function () {
    const list = {
      "大吉" : 10,
      "吉" : 15,
      "中吉" : 20,
      "小吉" : 25,
      "末吉" :15,
      "凶" : 10,
      "大凶" : 5,
    };

    document.getElementById("button").onclick = function () {
      var random = Math.floor(Math.random() * 100);
      var rate = 0;
      for(var data in list){
        rate += list&#91;data];
        if(random &lt;= rate){
          document.getElementById("result").textContent = data;
          return;
        }
      }
    }
  }
&lt;/script&gt;

&lt;body&gt;
  &lt;div class="wrapper"&gt;
    &lt;p&gt;おみくじ&lt;br&gt;ボタンをクリックしてください。&lt;/p&gt;
    &lt;div class="wrapper-button"&gt;
      &lt;button id="button" class="button"&gt;おみくじを引く&lt;/button&gt;
    &lt;/div&gt;
    &lt;p id="result"&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/body&gt;</code></pre>



<h3 class="wp-block-heading"><span id="toc6">解説</span></h3>



<p>HTMLは変更なしのため、解説は割愛します。</p>



<p><span class="marker-under">JavaScript</span></p>



<ul class="wp-block-list">
<li>3～11行目　おみくじの結果を<span class="marker-under">連想配列</span>に設定<br>　　　 valueを数字にして確率を設定（数字が大きい方が出やすい）<br>　　　 ※ <span class="marker-under">全ての項目のvalueの和が100</span>になるように</li>



<li>13～23行目　ボタンのクリックイベント</li>



<li>14行目　random関数を利用して<span class="marker-under">0～100の数</span>までのランダムの数を作成<br>　　　　 floor関数で小数を切り捨てて整数にする</li>



<li>15～21行目　<span class="marker-under">14行目でランダムに設定した値を使い、for文で連想配列を回しながら14行目で取得した値の結果</span>をid=&#8221;result&#8221;に設定</li>
</ul>



<h2 class="wp-block-heading"><span id="toc7">ボタンを押しておみくじルーレットを表示</span></h2>



<p>最後にボタンを「START」「STOP」に変更しておみくじルーレットを作成します。<br>また、おみくじの結果は画像にしました。</p>



<p><a href="https://nyanblog2222.com/demo/omikuji3/" target="_blank">こちらがデモページ</a>になります。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/09/2022-09-05-232524.png" alt="" class="wp-image-4792" width="230" height="451" srcset="https://nyanblog2222.com/wp-content/uploads/2022/09/2022-09-05-232524.png 306w, https://nyanblog2222.com/wp-content/uploads/2022/09/2022-09-05-232524-153x300.png 153w" sizes="auto, (max-width: 230px) 100vw, 230px" /><figcaption class="wp-element-caption">表示画面</figcaption></figure>



<h3 class="wp-block-heading"><span id="toc8">ソースコード</span></h3>



<p>こちらがソースコードです。</p>



<h4 class="wp-block-heading"><span id="toc9">HTML</span></h4>



<pre class="wp-block-code html"><code>&lt;body&gt;
  &lt;div class="wrapper"&gt;
    &lt;p&gt;おみくじ&lt;br&gt;ボタンをクリックしてください。&lt;/p&gt;
    &lt;div class="wrapper-button"&gt;
      &lt;button id="button" class="button"&gt;START&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;img id="img" src="img/muji.png" alt=""&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/body&gt;</code></pre>



<h4 class="wp-block-heading"><span id="toc10">JavaScript</span></h4>



<pre class="wp-block-code html"><code>window.onload = function () {

  const list = {
    "daikichi":10,
    "kichi":15,
    "chuukichi":20,
    "syoukichi":25,
    "suekichi":15,
    "kyou":10,
    "daikyou":5,
  };

  var timer;
  // START・STOPボタンクリックのイベント
  document.getElementById("button").onclick = function () {
    // START
    if (this.textContent == "START") {
      // ボタンのテキストを"STOP"に変更
      this.textContent = "STOP";

      // ルーレットタイマーを設定
      timer = setInterval(function () {
        var random = Math.floor(Math.random() * Object.keys(list).length);
        document.getElementById("img").src = "img/" + Object.keys(list)&#91;random] + ".png";
      }, 10);
    // STOP
    } else {
      // ボタンのテキストを"START"に変更
      this.textContent = "START";

      var rate = 0;
      var random = Math.floor(Math.random() * 100);
      for(var data in list){
        rate += list&#91;data];
        if(random &lt;= rate){
          document.getElementById("img").src = "img/" + data + ".png";

          // ルーレットタイマーを停止
          clearInterval(timer);
          return;
        }
      }
    }
  };
};</code></pre>



<h3 class="wp-block-heading"><span id="toc11">解説</span></h3>



<p><span class="marker-under">HTML</span></p>



<ul class="wp-block-list">
<li>4～6行目　ボタン：押すことでおみくじが引く</li>



<li>7～9行目　pタグ：おみくじの結果を表示</li>
</ul>



<p><span class="marker-under">JavaScript</span></p>



<ul class="wp-block-list">
<li>3～11行目　おみくじの結果を<span class="marker-under">連想配列</span>に設定</li>



<li>15～行目　ボタンのクリックイベント</li>



<li>16～24行目　<span class="marker-under">START表示時</span>にクリックしたときの処理<br>・19行目　ボタン表示を[STOP]に変更<br>・22～25行目　タイマーを設定（ルーレットを作ります）<br>・23行目　randomにランダムに値を設定（0～連想配列の数）<br>・24行目　23行目の値を使って画像を設定</li>



<li>26～43行目　<span class="marker-under">STOP表示時</span>にクリックしたときの処理<br>・29行目　ボタン表示を[START]に変更<br>・31～42行目　[おみくじの結果の確率を設定]のおみくじの設定を流用<br>・39行目　タイマー解除</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>上記で簡単に解説していますが、</p>



<p>START表示の処理は[ボタンを押しておみくじを表示]、</p>



<p>STOP表示の処理は[おみくじの結果の確率を設定]の実装を流用しています！</p>
</div></div>
<p>投稿 <a href="https://nyanblog2222.com/programming/4764/">【初心者】JavaScriptでおみくじの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/4764/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【サンプル】JavaScriptのコードまとめリンク集</title>
		<link>https://nyanblog2222.com/programming/4717/</link>
					<comments>https://nyanblog2222.com/programming/4717/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 01 Sep 2022 12:18:37 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[サンプル]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4717</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/85.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/85.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />本記事では当ブログで上げているJavaScript記事のまとめリンク集になります。 目次でカテゴリ分けをしているので、気になる内容がありましたら目次から飛んでみてください♪ 目次 文法JavaScript サンプルVue [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/4717/">【サンプル】JavaScriptのコードまとめリンク集</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/85.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/85.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>本記事では当ブログで上げてい<span class="marker-under">るJavaScript記事のまとめリンク集</span>になります。</p>



<p>目次でカテゴリ分けをしているので、気になる内容がありましたら目次から飛んでみてください♪</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">文法</a></li><li><a href="#toc2" tabindex="0">JavaScript サンプル</a></li><li><a href="#toc3" tabindex="0">Vue.js サンプル</a></li><li><a href="#toc4" tabindex="0">Canvas</a></li><li><a href="#toc5" tabindex="0">JSON</a></li><li><a href="#toc6" tabindex="0">アニメーション サンプル</a></li><li><a href="#toc7" tabindex="0">IE対応</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">文法</span></h2>



<p>基本的な文法やJavaScriptで用意されている関数などの解説の記事です。</p>



<ul class="wp-block-list"><li><a href="https://nyanblog2222.com/programming/javascript/1378/" target="_blank">【var let const】変数、型の違い</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1132/" target="_blank">＜input type=”file”＞で読み込んだ画像を表示</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1102/" target="_blank">＜input type=”file”＞ファイルを選択するボタンの画像やスタイルを設定する方法</a></li><li><a href="https://nyanblog2222.com/programming/javascript/775/" target="_blank">【console.log】デバッグ中に値を確認</a></li><li><a href="https://nyanblog2222.com/programming/javascript/822/" target="_blank">【フォーマット文字列】console.logでデバッグ</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1627/" target="_blank">【then/resolve/reject】Promiseの使い方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/984/" target="_blank">非同期処理と処理の順番について</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1620/" target="_blank">遅延実行でイベントを発生させる方法</a></li></ul>



<h2 class="wp-block-heading"><span id="toc2">JavaScript サンプル</span></h2>



<p>JavaScriptを使用したサンプルの一覧です。</p>



<ul class="wp-block-list"><li><a href="https://nyanblog2222.com/programming/javascript/2749/" target="_blank">カレンダー作成</a></li><li><a href="https://nyanblog2222.com/programming/javascript/4496/" target="_blank">電卓の作り方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/4764/" target="_blank">おみくじの作り方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/2835/" target="_blank">祝日対応のカレンダー作成</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1194/" target="_blank">ビンゴマシンの作り方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1016/" target="_blank">ビンゴカードの作り方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1200/" target="_blank">カウントダウンタイマーの作り方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1382/" target="_blank">アナログ時計の作り方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/4829/" target="_blank">ストップウォッチの作り方</a></li></ul>



<h2 class="wp-block-heading"><span id="toc3">Vue.js サンプル</span></h2>



<p>Vueの基本からVueを使用したサンプルの一覧です。</p>



<ul class="wp-block-list"><li><a href="https://nyanblog2222.com/programming/javascript/4571/" target="_blank">vue.jsで電卓の作り方</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1638/" target="_blank">Vue.jsの基本（1）</a></li></ul>



<h2 class="wp-block-heading"><span id="toc4">Canvas</span></h2>



<p>2Dの図形を描画するのに用いられるcanvasの使い方の一覧です。</p>



<ul class="wp-block-list"><li><a href="https://nyanblog2222.com/programming/javascript/699/" target="_blank">Canvasとは</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1506/" target="_blank">Canvasで複数の画像を1つのimgタグで順番に出力</a></li></ul>



<h2 class="wp-block-heading"><span id="toc5">JSON</span></h2>



<p>さまざまなデータの集まりであるJSONの扱い方の一覧です。</p>



<ul class="wp-block-list"><li><a href="https://nyanblog2222.com/programming/javascript/1566/" target="_blank">【ajax/getJSON】JQueryでのJSON読み込み方法</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1526/" target="_blank">JSONデータの参照・追加（更新）・削除</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1514/" target="_blank">JSONとは？JS相互変換について(stringify/parse)</a></li><li><a href="https://nyanblog2222.com/programming/javascript/4739/" target="_blank">JavaScriptのオブジェクトからJSONデータに変換</a></li><li><a href="https://nyanblog2222.com/programming/javascript/4723/" target="_blank">JSONデータをJavaScriptのオブジェクトに変換</a></li></ul>



<h2 class="wp-block-heading"><span id="toc6">アニメーション サンプル</span></h2>



<p>JavaScriptでCSSやプラグインを操作した、動きのあるサンプルの一覧です。</p>



<ul class="wp-block-list"><li><a href="https://nyanblog2222.com/programming/javascript/1630/" target="_blank">スクロール中にヘッダーを固定する方法</a></li><li><a href="https://nyanblog2222.com/programming/javascript/1233/" target="_blank">文字をカーブ状に配置するプラグイン</a></li><li><a href="https://nyanblog2222.com/programming/javascript/32/" target="_blank">コピペでできるドロップダウンメニュー</a></li><li><a href="https://nyanblog2222.com/programming/javascript/73/" target="_blank">スムーススクロールでふわっとページ移動</a></li><li><a href="https://nyanblog2222.com/programming/javascript/345/" target="_blank">水面の動きを表現したプラグインの使い方</a></li></ul>



<h2 class="wp-block-heading"><span id="toc7">IE対応</span></h2>



<p>IE対応の一覧です。<br>※ 使うことはないかもしれませんが…。</p>



<ul class="wp-block-list"><li><a href="https://nyanblog2222.com/programming/javascript/965/" target="_blank">【object-fit-images】object-fit,object-positionのIE対応</a></li></ul>



<p></p>



<p></p>



<p></p>
<p>投稿 <a href="https://nyanblog2222.com/programming/4717/">【サンプル】JavaScriptのコードまとめリンク集</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/4717/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【サンプル】JavaScriptのオブジェクトからJSONデータに変換【JSON.stringify()】</title>
		<link>https://nyanblog2222.com/programming/javascript/4739/</link>
					<comments>https://nyanblog2222.com/programming/javascript/4739/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Wed, 31 Aug 2022 12:35:10 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[stringify]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4739</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/88_new.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/88_new.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/88_new-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/88_new-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/88_new-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />JavaScriptのオブジェクトからJSON文字列のデータに変換するには、JSON.stringify()関数を使用します。 本記事では基本的な使い方から、第2引数・第3引数の使用方法も含めてご紹介していきます！ 目次 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4739/">【サンプル】JavaScriptのオブジェクトからJSONデータに変換【JSON.stringify()】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/88_new.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/88_new.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/88_new-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/88_new-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/88_new-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>JavaScriptのオブジェクトからJSON文字列のデータに変換するには、<span class="marker-under">JSON.stringify()</span>関数を使用します。</p>



<p>本記事では基本的な使い方から、第2引数・第3引数の使用方法も含めてご紹介していきます！</p>



<div class="wp-block-sbd-checkpoint-block is-style-sbd-checkpoint-pink"><p class="sbd-checkpoint-title">この記事のポイント</p><div class="sbd-checkpoint-content sbd-inner-block-init"><p>・<span class="marker-under">JSON.<span class="marker-under">stringify</span>()</span>を使用してJavaScript→JSONデータのオブジェクトに変換<br>・第2・3引数は任意だが、<span class="marker-under">指定することでさまざまな設定が可能</span></div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">構文</a></li><li><a href="#toc2" tabindex="0">使い方</a><ol><li><a href="#toc3" tabindex="0">JSONの文字列データに変換</a></li><li><a href="#toc4" tabindex="0">関数、または配列を指定して置き換え処理を実行</a></li><li><a href="#toc5" tabindex="0">関数、または配列を指定して置き換え処理を実行</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">構文</span></h2>



<pre class="wp-block-code javascript"><code>JSON.stringify(value&#91;, replacer&#91;, space]])</code></pre>



<p>第1引数：JSONの文字列データに変換するオブジェクト<br>第2引数：関数か配列を指定してJSONの置き換えを行う<br>第3引数：可読性を上げるため、JSONデータの項目の前にスペース等を設定可</p>



<h2 class="wp-block-heading"><span id="toc2">使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc3">JSONの文字列データに変換</span></h3>



<p>まずは第1引数だけ指定して、JavaScriptのオブジェクトをJSONデータに変換します。<br>オブジェクトでなくとも、値だけ引数を渡してもJSONデータに変換可能です。</p>



<pre class="wp-block-code javascript"><code>// '{"a":10,"b":20,"c":30}'
console.log(JSON.stringify({a:10, b:20, c:30}));

// 1項目目と2項目目は異なる型
// '&#91;true,"true"]'
console.log(JSON.stringify(&#91;new Boolean(true), new String('true')]));

// 値だけ
// "5"
console.log(JSON.stringify(5));</code></pre>



<p>実行結果</p>



<p>以下のようにそれぞれJSONの文字列データとして出力されます。</p>



<pre class="wp-block-code plaintext"><code>'{"a":10,"b":20,"c":30}'
'&#91;true,"true"]'
"5"</code></pre>



<h3 class="wp-block-heading"><span id="toc4">関数、または配列を指定して置き換え処理を実行</span></h3>



<p>第2引数は関数か配列を指定できます。</p>



<p>・keyとvalueの引数を持つ関数を指定することで<span class="marker-under">値を置き換えしたり、除外する</span>ことができます。</p>



<p>・配列を指定すると、<span class="marker-under">配列に指定されたkeyのみ含めた</span>JSON文字列のみ値を返します。</p>



<pre class="wp-block-code javascript"><code>function replacer(key, value){
  if(typeof value ==="string"){
      return undefined;
  }
  if(key === "c"){
      return value * 2;
  }
  return value;
}

// '{"a":10,"c":60}'
console.log(JSON.stringify({a:10, b:"test", c:30}, replacer));

// '{"b":"test","c":30}'
console.log(JSON.stringify({a:10, b:"test", c:30}, &#91;"b", "c"]));</code></pre>



<p>実行結果</p>



<p>1行目では<span class="marker-under">「key:b」が除外</span>され、<span class="marker-under">「key:c」のvalueが2倍</span>になっています。<br>2行目では<span class="marker-under">「key:a」が除外</span>されていることが分かりますね！</p>



<pre class="wp-block-code plaintext"><code>'{"a":10,"c":30}'
'{"b":"test","c":30}'</code></pre>



<h3 class="wp-block-heading"><span id="toc5">関数、または配列を指定して置き換え処理を実行</span></h3>



<p>第3引数を指定することで<span class="marker-under">JSONデータを成形する際のスペースや文字を入れる</span>ことができます。<br>※ 指定することで強制的に改行が入るので改行コードは不要になります。</p>



<p>ただし、このスペースや文字列は<span class="marker-under">10文字までしか設定できない</span>ため、文字列を10文字以上設定した場合は<span class="marker-under">先頭から10文字分設定</span>されます。</p>



<pre class="wp-block-code javascript"><code>console.log(JSON.stringify({a:10, b:20, c:30},undefined,5));

// 11で設定しているが、スペースは10個までしか反映されない
console.log(JSON.stringify({a:10, b:20, c:30},undefined,11));

console.log(JSON.stringify({a:10, b:20, c:30},undefined,"\t"));

// 11文字設定しているが、10文字までしか反映されない
console.log(JSON.stringify({a:10, b:20, c:30},undefined,"12345678901"));</code></pre>



<p>実行結果</p>



<pre class="wp-block-code plaintext"><code>'{
     "a": 10,
     "b": 20,
     "c": 30
}'
'{
          "a": 10,
          "b": 20,
          "c": 30
}'
'{
	"a": 10,
	"b": 20,
	"c": 30
}'
'{
1234567890"a": 10,
1234567890"b": 20,
1234567890"c": 30
}'</code></pre>



<p></p>



<p></p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4739/">【サンプル】JavaScriptのオブジェクトからJSONデータに変換【JSON.stringify()】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/4739/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【サンプル】JSONデータをJavaScriptのオブジェクトに変換【JSON.parse()】</title>
		<link>https://nyanblog2222.com/programming/javascript/4723/</link>
					<comments>https://nyanblog2222.com/programming/javascript/4723/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 27 Aug 2022 13:34:41 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[parse]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4723</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/84.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/84.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/84-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/84-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/84-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />JSON文字列のデータからJavaScriptのオブジェクトに変換するには、JSON.parse()関数を使用します。 本記事では基本的な使い方から、第二引数の使用方法も含めてご紹介していきます！ 目次 構文使い方JSO [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4723/">【サンプル】JSONデータをJavaScriptのオブジェクトに変換【JSON.parse()】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/84.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/84.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/84-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/84-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/84-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>JSON文字列のデータからJavaScriptのオブジェクトに変換するには、<span class="marker-under">JSON.parse()</span>関数を使用します。</p>



<p>本記事では基本的な使い方から、第二引数の使用方法も含めてご紹介していきます！</p>



<div class="wp-block-sbd-checkpoint-block is-style-sbd-checkpoint-pink"><p class="sbd-checkpoint-title">この記事のポイント</p><div class="sbd-checkpoint-content sbd-inner-block-init"><p>・<span class="marker-under">JSON.parse()</span>を使用してJSONデータ→JavaScriptのオブジェクトに変換<br>・第2引数は任意だが、<span class="marker-under">オブジェクトを返す前に実行する処理</span>を設定が可能</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">構文</a></li><li><a href="#toc2" tabindex="0">使い方</a><ol><li><a href="#toc3" tabindex="0">JSONデータをJavaScriptのオブジェクトに変換</a></li><li><a href="#toc4" tabindex="0">JSONデータからオブジェクトを返す前に処理を実行</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">構文</span></h2>



<pre class="wp-block-code javascript"><code>JSON.parse(text&#91;, reviver])</code></pre>



<p>第1引数：JSONデータ形式の文字列<br>第2引数：値を返す前に実行する関数（コールバック関数）</p>



<p>第2引数に関数を指定することで、事前にJSONデータに処理を行った状態でオブジェクトにすることができます。</p>



<h2 class="wp-block-heading"><span id="toc2">使い方</span></h2>



<p>JSONデータは文字列（string）型なので、JavaScriptで扱いやすいようにJSON.parse()関数でObjectに変換してから使用します。</p>



<h3 class="wp-block-heading"><span id="toc3">JSONデータをJavaScriptのオブジェクトに変換</span></h3>



<p>まずは第1引数だけ指定してJavaScriptのオブジェクトに変換します。</p>



<pre class="wp-block-code javascript"><code>const data = '{"a":10, "b":20, "c":30 }';
const obj = JSON.parse(data);

// {a:10, b:20, c:30}
console.log(obj); 

// 20
console.log(obj.b);
</code></pre>



<p>実行結果</p>



<p>1行目はオブジェクト形式のデータが表示されます。</p>



<pre class="wp-block-code plaintext"><code>{a:10, b:20, c:30}
20</code></pre>



<h3 class="wp-block-heading"><span id="toc4">JSONデータからオブジェクトを返す前に処理を実行</span></h3>



<p>次に第2引数を指定します。<br>keyとvalueの引数を持つ関数を設定し、関数の戻り値が新しくvalueに設定されます。</p>



<p>ここでの例ではkey=&#8221;a&#8221;, &#8220;b&#8221;, &#8220;c&#8221;、valueは10, 20, 30になり、<br>keyが&#8221;b&#8221;の場合のみ、valueを2倍にして返す関数を設定します。</p>



<pre class="wp-block-code javascript"><code>const data = '{"a":10, "b":20, "c":30 }';
const obj = JSON.parse(data, function(key, value){
  if(key==="b"){
      return value * 2;
  }
  return value;
});

console.log(obj); </code></pre>



<p>実行結果でオブジェクトのbに40が設定されていることが確認できます。</p>



<pre class="wp-block-code plaintext"><code>{a:10, b:40, c:30}</code></pre>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4723/">【サンプル】JSONデータをJavaScriptのオブジェクトに変換【JSON.parse()】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/4723/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者】簡単！vue.jsで電卓の作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/4571/</link>
					<comments>https://nyanblog2222.com/programming/javascript/4571/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 10 Mar 2022 12:40:12 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[vue.js]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[計算機]]></category>
		<category><![CDATA[電卓]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4571</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />前回はJavaScriptで電卓を作成しました。今回は前回作成した電卓を元にvue.jsに書き換えしてみましょう。 前回の記事はこちらから！ 目次 はじめに電卓の機能HTMLvue.jsの設定 → CDNでの設定電卓の各 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4571/">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>前回はJavaScriptで電卓を作成しました。<br>今回は前回作成した電卓を元にvue.jsに書き換えしてみましょう。</p>



<p>前回の記事はこちらから！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a href="https://nyanblog2222.com/programming/javascript/4496/" title="【初心者】簡単！JavaScriptで電卓の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JSで四則演算や小数点の計算ができる簡易的な電卓を作成。持たせる機能から作り方の考え方までHTML,CSSソースやデモページ付きで解説しているので、プログラミングの勉強や参考に！デモページあり。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.03.06</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-popular">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a><ol><li><a href="#toc2" tabindex="0">電卓の機能</a></li></ol></li><li><a href="#toc3" tabindex="0">HTML</a><ol><li><a href="#toc4" tabindex="0">vue.jsの設定 → CDNでの設定</a></li><li><a href="#toc5" tabindex="0">電卓の各ボタンをv-forで自動作成</a></li><li><a href="#toc6" tabindex="0">クリックイベント書き換え</a></li><li><a href="#toc7" tabindex="0">vue使用のためv-model、idの設定</a></li></ol></li><li><a href="#toc8" tabindex="0">JavaScript</a></li><li><a href="#toc9" tabindex="0">デモ</a></li><li><a href="#toc10" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずはじめに<a href="https://nyanblog2222.com/programming/javascript/4496/" target="_blank">前回でも</a>説明しましたが、電卓の機能を説明します。<br>その後、vue.jsに書き換える手順を説明します。</p>



<p>また、CSSに関しては前回の記事より変更がありませんので今回は割愛させていただきます。</p>



<h3 class="wp-block-heading"><span id="toc2">電卓の機能</span></h3>



<p>作る電卓の機能は次のとおりです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list"><li>四則演算ができる</li><li>Cキーで初期化</li><li>＝で計算した後<br>数字の場合、初期化したあと数字入力<br>演算子の場合、結果はそのまま使用</li><li>最初のキーが”0”、&#8221;.&#8221;、&#8221;+-×/&#8221;の場合、<br>あらかじめ0が入力されている前提で式に入力</li></ul>
</div>



<p>完成イメージはこちらです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png" alt="" class="wp-image-4515" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">HTML</span></h2>



<p>HTMLコードです。</p>



<pre class="wp-block-code html"><code>&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>電卓&lt;/title>
  &lt;link rel="icon" href="https://nyanblog2222.com/wp-content/themes/blogtemplate/images/favicon.ico">
  &lt;link rel="stylesheet" href="reset.css">
  &lt;link rel="stylesheet" href="style.css">
  &lt;script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js">&lt;/script>
  &lt;script src="script.js">&lt;/script>
&lt;/head>

&lt;body>
  &lt;div id="app">
    &lt;h1 id="header">電卓&lt;/h1>
    &lt;div id="calc">
      &lt;div>
        &lt;input readonly v-model="result" type="text">&lt;button v-on:click="c_click">C&lt;/button>
      &lt;/div>
      &lt;div v-for="row in dataArrays">
        &lt;button v-for="column in row" v-on:click="btn_Click(column)">{{column}}&lt;/button>
      &lt;/div>
    &lt;/div>
  &lt;/div>
&lt;/body></code></pre>



<h3 class="wp-block-heading"><span id="toc4">vue.jsの設定 → CDNでの設定</span></h3>



<pre class="wp-block-code html"><code>&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>電卓&lt;/title>
  &lt;link rel="stylesheet" href="reset.css">
  &lt;link rel="stylesheet" href="style.css">
  &lt;script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js">&lt;/script>
  &lt;script src="script.js">&lt;/script>
&lt;/head></code></pre>



<p>今回vueを使用するため、6行目にheadタグにCDN設定を追加しました。</p>



<p>注意する点として、<span class="marker-under">他のJavaScriptファイルを読み込む前にCDN設定するように</span>してください。</p>



<p>また、<a rel="noopener" href="https://jp.vuejs.org/v2/guide/installation.html" target="_blank">vue.jsのインストールや最新環境のCDNの情報はこちらから確認してください♪</a></p>



<h3 class="wp-block-heading"><span id="toc5">電卓の各ボタンをv-forで自動作成</span></h3>



<pre class="wp-block-code html"><code>&lt;div v-for="row in dataArrays">
  &lt;button v-for="column in row" v-on:click="btn_Click(column)">{{column}}&lt;/button>
&lt;/div></code></pre>



<pre class="wp-block-code javascript"><code>// 電卓のボタン
dataArrays: &#91;
  &#91;"7", "8", "9", "÷"],
  &#91;"4", "5", "6", "×"],
  &#91;"1", "2", "3", "-"],
  &#91;"0", ".", "=", "+"],
],</code></pre>



<p>Cボタン以外は<span class="marker-under">vueで自動生成</span>させます。<br>ボタンの順番やデータはJavaScript側で記述します。</p>



<p><span class="marker-under">divタグはデータ1行単位でforを回し、buttonタグは1項目（1データ）単位で回して</span>います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>dataArrayと完成イメージ図を見比べると分かりやすいと思います！</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc6">クリックイベント書き換え</span></h3>



<p>クリックイベント「onclick」を「v-on:click」に置換します。</p>



<h3 class="wp-block-heading"><span id="toc7">vue使用のためv-model、idの設定</span></h3>



<p>inputタグのidを設定していましたが、v-modelでの設定に変更。<br>divのid=&#8221;app&#8221;を設定。</p>



<h2 class="wp-block-heading"><span id="toc8">JavaScript</span></h2>



<p>こちらがJavaScriptのコードです。</p>



<p>scriptファイルを分けているので、<span class="marker-under">「window.onload」でhtmlの読み込みが終わってから実行する</span>ようにしています。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {
  new Vue({
    el: '#app',
    data: {
      result: "0",
      is_calc: false,
      dataArrays: &#91;
        &#91;"7", "8", "9", "÷"],
        &#91;"4", "5", "6", "×"],
        &#91;"1", "2", "3", "-"],
        &#91;"0", ".", "=", "+"],
      ],
      operators_list: &#91;"÷", "×", "-", "+"  ],
    },
    methods: {
      c_click: function () {
        this.result = "0";
        this.is_calc = false;
      },
      btn_Click: function (val) {
        if (this.operators_list.includes(val)) {
          this.ope_click(val);
        } else if (val === "=") {
          this.equal_click();
        } else {
          this.num_click(val);
        }
      },
      num_click: function (val) {
        if (this.is_calc) this.result = "0";
        this.is_calc = false;

        if (this.result == "0" &amp;&amp; val == "0") {
          this.result = "0";
        } else if (this.result == "0" &amp;&amp; val == ".") {
          this.result = "0.";
        } else if (this.result == "0") {
          this.result = val;
        } else {
          this.result += val;
        }
      },
      ope_click: function (val) {
        if (this.is_calc) this.is_calc = false;

        if (this.is_ope_last()) {
          this.result = this.result.slice(0, -1) + val;
        } else {
          this.result += val;
        }
      },
      equal_click: function () {
        if (this.is_ope_last()) this.result = this.result.slice(0, -1);

        var temp = new Function("return " + this.result.replaceAll("×", "*").replaceAll("÷", "/"))();
        if (temp == Infinity || Number.isNaN(temp)) {
          this.result = "Error";
        } else {
          this.result = temp;
          this.is_calc = true;
        }
      },
      is_ope_last: function () {
        return this.operators_list.includes(this.result.toString().slice(-1));
      },
    },
  });
};</code></pre>



<h2 class="wp-block-heading"><span id="toc9">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/calc_vue1/">こちらがデモページ</a>になります。<br>電卓が表示され、ボタンを押すと実際に計算ができるのでぜひ試してみてください♪</p>



<h2 class="wp-block-heading"><span id="toc10">最後に</span></h2>



<p>いかがでしたでしょうか。vue.jsも主流になっていますので使いこなしていきたいですね！</p>



<p>良ければ別のサンプルページも見てみてくださいね♪</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/4571/">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/4571/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/4496/</link>
					<comments>https://nyanblog2222.com/programming/4496/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 06 Mar 2022 14:50:45 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[計算機]]></category>
		<category><![CDATA[電卓]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4496</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回はJavaScriptで電卓を作成しました。初心者の方が勉強しやすいシンプルな機能で作ってみました。 まずは簡単なものを完成することを目的にして、そのあとで機能を追加していくことが勉強するにはおすすめですよ♪ 別記事 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/4496/">【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回はJavaScriptで電卓を作成しました。<br>初心者の方が勉強しやすいシンプルな機能で作ってみました。</p>



<p>まずは<span class="marker-under">簡単なものを完成することを目的</span>にして、<br>そのあとで<span class="marker-under">機能を追加していくことが勉強する</span>にはおすすめですよ♪</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>初めから難しいものを作ろうとしても時間がかかって、その内やる気がなくなるのは勿体ないですよね…。（よくある）</p>
</div></div>



<p>別記事でVue.jsを使った記述も紹介しますので、合わせて読んでみてください！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4571/" title="【初心者】簡単！vue.jsで電卓の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JS[JavaScript]で四則演算ができる簡易的な計算機を作成しました。プログラミング初心者の方への勉強向け記事になりますのでデモページを見ながらコード、関数を見ながら作成してみてはいかがでしょうか。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.03.10</div></div></div></div></a>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">HTML</a><ol><li><a href="#toc3" tabindex="0">コード</a></li><li><a href="#toc4" tabindex="0">HTML解説</a></li></ol></li><li><a href="#toc5" tabindex="0">CSS</a></li><li><a href="#toc6" tabindex="0">JavaScript</a><ol><li><a href="#toc7" tabindex="0">コード</a></li><li><a href="#toc8" tabindex="0">解説</a><ol><li><a href="#toc9" tabindex="0">・グローバル変数の定義</a></li><li><a href="#toc10" tabindex="0">・HTML読み込み後</a></li><li><a href="#toc11" tabindex="0">・Cボタンクリック</a></li><li><a href="#toc12" tabindex="0">・数字ボタンクリック</a></li><li><a href="#toc13" tabindex="0">・演算子ボタンクリック</a></li><li><a href="#toc14" tabindex="0">・＝ボタンクリック</a></li><li><a href="#toc15" tabindex="0">・is_ope_last() 関数</a></li></ol></li></ol></li><li><a href="#toc16" tabindex="0">デモ</a></li><li><a href="#toc17" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずは<span class="marker-under">今回作成する電卓の機能を決定</span>します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>コーディングする前に機能を決定しておくことは、手戻りを防ぐためにも大事ですね♪</p>
</div></div>



<p>今回は次の機能を持たせました。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list">
<li>四則演算ができる</li>



<li>Cキーで初期化</li>



<li>＝で計算した後<br>数字の場合、初期化したあと数字入力<br>演算子の場合、結果はそのまま使用</li>



<li>最初のキーが”0”、&#8221;.&#8221;、&#8221;+-×/&#8221;の場合、<br>あらかじめ0が入力されている前提で式に入力</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>今回はこのまま進みますが、機会があればアップデートしていきたいですね♪</p>
</div></div>



<p>完成イメージ図はこちらです。<a href="https://nyanblog2222.com/demo/calc1/">デモページ</a>もありますので見てみてください。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png" alt="" class="wp-image-4515" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<h2 class="wp-block-heading"><span id="toc2">HTML</span></h2>



<p>まずはHTMLを作成していきます。<br>作成しているのは、次の3つです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-brown-border-color">
<ul class="wp-block-list">
<li>ヘッダー<br>「電卓」の文字</li>



<li>計算の表示枠</li>



<li>数字や演算子 ボタン</li>
</ul>
</div>



<h3 class="wp-block-heading"><span id="toc3">コード</span></h3>



<pre class="wp-block-code html"><code>&lt;div class="wrapper"&gt;
  &lt;h1 id="header"&gt;電卓&lt;/h1&gt;
  &lt;div id="calc"&gt;
    &lt;div&gt;
      &lt;input readonly id="result" type="text" value="0"&gt;
      &lt;button onclick="c_click()"&gt;C&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;7&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;8&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;9&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;÷&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;4&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;5&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;6&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;×&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;1&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;2&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;3&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;-&lt;/button&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;0&lt;/button&gt;
      &lt;button onclick="num_click(this.innerHTML)"&gt;.&lt;/button&gt;
      &lt;button onclick="equal_click()"&gt;=&lt;/button&gt;
      &lt;button onclick="ope_click(this.innerHTML)"&gt;+&lt;/button&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p><span class="marker-under">input後のbuttonや、button後のbutton</span>について<br>分かりやすいように改行を入れていますが、<span class="marker-under">実際のコードでは改行していない</span>ので注意してください。</p>
</div></div>



<p>HTMLファイルを見てみると画像のように表示されます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2.png" alt="" class="wp-image-4522" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304_2-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<h3 class="wp-block-heading"><span id="toc4">HTML解説</span></h3>



<ul class="wp-block-list">
<li>5行目　input要素<br>・readonly属性にして直接入力不可<br>・計算式や結果を表示するためid=&#8221;result&#8221;を設定<br>・valueを0にして初期表示</li>



<li>6行目　Cボタン<br>onclick属性で&#8221;c_click()&#8221;を設定</li>



<li>数字ボタン<br>onclick属性で&#8221;num_click(this.innerHTML)&#8221;を設定<br>this.innerHTMLはHTMLの中身を表しています。<br>例）9行目であれば&#8221;7&#8243;が入ります。</li>



<li>演算子ボタン<br>onclick属性で&#8221;ope_click(this.innerHTML)&#8221;を設定</li>



<li>29行目　イコールボタン<br>onclick属性で&#8221;equal_click()&#8221;を設定</li>
</ul>



<h2 class="wp-block-heading" id="block-9c55e8b0-4699-44c9-8292-f6eb513518f3"><span id="toc5">CSS</span></h2>



<p id="block-5cb743a1-2754-4c53-9351-04a5a1df0cb0">次にCSSでスタイルを決定します。<br>”reset.css”も使っているので、この辺りは好きなようにカスタマイズをしてください。</p>



<pre class="wp-block-code css"><code>@charset "utf-8";
/*全体*/
.wrapper{
  max-width: 350px;
  margin: 0 auto;
  color: #666;
}
#header,#calc{
  box-sizing: border-box;
  text-align: center;
}
/*ヘッダー*/
#header {
  font-size: 24px;
  padding: 1rem;
}
/*テキスト*/
input{
  box-sizing: border-box;
  width: 75%;
  height: 3.5rem;
  font-size: 1.6rem;
  text-align: right;
  padding: 0 0.75rem;
}
/*ボタン関係*/
button{
  font-size: 18px;
  width: 25%;
  height: 3.5rem;
  color: #333;
  vertical-align: middle;
  border-color: #fff;
}
button:hover{
  background-color: #ddd;
}
</code></pre>



<p>設定が終わると、このように表示されるようになります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="450" src="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png" alt="" class="wp-image-4515" srcset="https://nyanblog2222.com/wp-content/uploads/2022/03/20220304.png 450w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-300x300.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-150x150.png 150w, https://nyanblog2222.com/wp-content/uploads/2022/03/20220304-100x100.png 100w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<h2 class="wp-block-heading"><span id="toc6">JavaScript</span></h2>



<h3 class="wp-block-heading"><span id="toc7">コード</span></h3>



<p>次項で詳しく解説していますが、コメントでも多少記述しています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>最初はコピペして自分で理解しながらカスタマイズする方法も勉強するのに向いていますよ！</p>
</div></div>



<pre class="wp-block-code javascript"><code>// データ
var result = "";
// =で計算したかどうか
var is_calc = false;

// 初期表示
window.onload = function () {
  result = document.getElementById('result');
};

// Cキー押下
function c_click(){
  result.value = "0";
  is_calc = false;
}

// 数字キー押下
function num_click(val){
  if(is_calc)  result.value = "0";
  is_calc = false;  

  if(result.value =="0" &amp;&amp; val == "0"){
    result.value = "0";
  }else if(result.value == "0" &amp;&amp; val == "."){
    result.value = "0.";
  }else if(result.value == "0"){
    result.value = val;
  }else{
    result.value += val;
  }
}

// 演算子キー押下
function ope_click(val){
  if(is_calc)  is_calc = false;
  
  if(is_ope_last()){
    result.value = result.value.slice(0, -1) + val;
  } else {
    result.value += val;
  }
}

// =キークリック
function equal_click(){
  if(is_ope_last())  result.value = result.value.slice(0, -1);

  var temp = new Function("return " + result.value.replaceAll("×", "*").replaceAll("÷", "/"))();
  if(temp == Infinity || Number.isNaN(temp)){
    result.value = "Error";
  }else{
    result.value = temp;
    is_calc = true;
  }
}

// 入力されている値が演算子かどうか
function is_ope_last(){
  return &#91;"+","-","×","÷"].includes(result.value.toString().slice(-1));
}
</code></pre>



<h3 class="wp-block-heading"><span id="toc8">解説</span></h3>



<p>先述したコードに対して細かく解説していきます！</p>



<h4 class="wp-block-heading"><span id="toc9">・グローバル変数の定義</span></h4>



<p>2つの変数を定義、初期化しています。<br>result変数はhtmlの<span class="marker-under">id=&#8221;ressult&#8221;</span>と紐づけします。</p>



<pre class="wp-block-code javascript"><code>// 表示させるデータ
var data = "";
// =で計算したかどうか
var is_calc = false;</code></pre>



<h4 class="wp-block-heading"><span id="toc10">・HTML読み込み後</span></h4>



<p>HTML読み込み後、<span class="marker-under">id&#8221;result&#8221;と変数のresultを紐づけ</span>しています。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {
  result = document.getElementById('result');
};</code></pre>



<h4 class="wp-block-heading"><span id="toc11">・Cボタンクリック</span></h4>



<p>Cボタンクリック時のイベントを記述しています。<br>ここでは変数の初期化を行っています。</p>



<pre class="wp-block-code javascript"><code>function c_click(){
  result.value = "0";
  is_calc = false;
}</code></pre>



<h4 class="wp-block-heading"><span id="toc12">・数字ボタンクリック</span></h4>



<p>数字ボタンクリック時のイベントを記述しています。</p>



<pre class="wp-block-code javascript"><code>function num_click(val){
  if(is_calc)  result.value = "0";
  is_calc = false;  

  if(result.value =="0" &amp;&amp; val == "0"){
    result.value = "0";
  }else if(result.value == "0" &amp;&amp; val == "."){
    result.value = "0.";
  }else if(result.value == "0"){
    result.value = val;
  }else{
    result.value += val;
  }
}</code></pre>



<ul class="wp-block-list">
<li>2、3行目<br>1度&#8221;＝&#8221;で計算済みの場合、数字ボタンを押したら<span class="marker-under">resultを初期化</span>します。<br><span class="bold">is_calcはfalse</span>にします。</li>



<li>5～13行目<br>入力した数字によって<span class="marker-under">resultの処理</span>を行います。<br>・1つ目の条件は初期化後、&#8221;0&#8243;が入力された場合、resultに&#8221;0&#8243;を設定<br>・2つ目の条件は初期化後、&#8221;.&#8221;が入力された場合、resultに&#8221;0.&#8221;を設定<br>・3つ目の条件は初期化後、上記以外の数字が入力された場合、resultに入力値を設定<br>・それ以外は直接resultに入力値を追加</li>
</ul>



<h4 class="wp-block-heading"><span id="toc13">・演算子ボタンクリック</span></h4>



<p>演算子ボタンクリック時のイベントを記述しています。</p>



<pre class="wp-block-code javascript"><code>function ope_click(val){
  if(is_calc)  is_calc = false;
  
  if(is_ope_last()){
    result.value = result.value.slice(0, -1) + val;
  } else {
    result.value += val;
  }
}</code></pre>



<ul class="wp-block-list">
<li>2行目<br><span class="marker-under">is_calcがtrueの場合があるのでfalse</span>にします</li>



<li>4～8行目<br>条件によって計算式の処理を変えています。<br>1つ目の条件では、<span class="marker-under">直前のボタンが演算子の場合、演算子を切り替え</span>ます。<br>それ以外では、<span class="marker-under">計算式に入力した演算子を付け加え</span>ます。</li>
</ul>



<pre class="wp-block-code javascript"><code>// 1つ目の条件：例
// 直前の計算式
9×6+
// 押したボタン
-
// 演算子切り替え後
9×6-</code></pre>



<h4 class="wp-block-heading"><span id="toc14">・＝ボタンクリック</span></h4>



<p>＝ボタンクリック時のイベントを記述しています。</p>



<pre class="wp-block-code javascript"><code>function equal_click(){
  if(is_ope_last())  result.value = result.value.slice(0, -1);

  var temp = new Function("return " + result.value.replaceAll("×", "*").replaceAll("÷", "/"))();

  if(temp == Infinity || Number.isNaN(temp)){
    result.value = "Error";
  }else{
    result.value = temp;
    is_calc = true;
  }
}</code></pre>



<ul class="wp-block-list">
<li>2行目<br>計算式の最後が演算子の場合、<span class="marker-under">演算子を取り除き</span>ます。</li>



<li>4行目<br><span class="marker-under">変数tempに計算式の計算結果を設定</span>します。</li>



<li>7～9行目<br>計算結果がInfinity（無限大）かNaN（数字出ない）場合、<span class="marker-under">resultにErrorを設定</span>します。</li>



<li>8～11行目<br><span class="marker-under">tempの値をresultに設定し、計算済み（is_calc）フラグをtrue</span>にします。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc15">・is_ope_last() 関数</span></h4>



<p><span class="bold-red">計算式の最後が演算子か判定する</span>関数です。<br>「result.value.toString().slice(-1)」は計算式の最後の文字を取得し、<br>「[&#8220;+&#8221;,&#8221;-&#8220;,&#8221;×&#8221;,&#8221;÷&#8221;].includes(&#8230;」で<span class="marker-under">4つの演算子と一致するかどうかbool型で返して</span>います。</p>



<pre class="wp-block-code javascript"><code>function is_ope_last(){
  return &#91;"+","-","×","÷"].includes(result.value.toString().slice(-1));
}
</code></pre>



<h2 class="wp-block-heading"><span id="toc16">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/calc1/">こちらがデモページ</a>になります。<br>電卓が表示され、ボタンを押すと実際に計算ができるのでぜひ試してみてください♪</p>



<h2 class="wp-block-heading"><span id="toc17">最後に</span></h2>



<p>いかがでしたでしょうか。<br>次回はvue.jsに書き換えしてみます！</p>



<p>良ければ別のサンプルページも見てみてくださいね♪</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4571/" title="【初心者】簡単！vue.jsで電卓の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/61-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/61-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者】簡単！vue.jsで電卓の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JS[JavaScript]で四則演算ができる簡易的な計算機を作成しました。プログラミング初心者の方への勉強向け記事になりますのでデモページを見ながらコード、関数を見ながら作成してみてはいかがでしょうか。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.03.10</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4717/" title="【サンプル】JavaScriptのコードまとめリンク集" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【サンプル】JavaScriptのコードまとめリンク集</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では当ブログで上げているJavaScript記事のまとめリンク集になります。目次でカテゴリ分けをしているので、気になる内容がありましたら目次から飛んでみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.09.01</div></div></div></div></a>
</div>
<p>投稿 <a href="https://nyanblog2222.com/programming/4496/">【初心者】簡単！JavaScriptで電卓の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/4496/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】カウントダウンタイマーの作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/1200/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1200/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Fri, 13 Aug 2021 05:01:54 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[setInterval]]></category>
		<category><![CDATA[カウントダウン]]></category>
		<category><![CDATA[タイマー]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1200</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/69.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/69.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。今回はJavaScriptでカウントダウンタイマーを作成してみました！ オリンピックやワールドカップ、クリスマスやお正月など季節の行事事のタイマーとしても使えます！ 今回はシンプルなスタイルで作成していますが [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1200/">【JavaScript】カウントダウンタイマーの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/69.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/69.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。今回は<span class="marker-under-red">JavaScriptでカウントダウンタイマーを作成</span>してみました！</p>



<p>オリンピックやワールドカップ、クリスマスやお正月など季節の行事事のタイマーとしても使えます！</p>



<p>今回はシンプルなスタイルで作成していますが、CSSで派手なスタイルにしても面白いと思います♪</p>



<p>カウントを取る動きとして似ている<span class="marker-under-red">アナログ時計を作った記事</span>も<br>良かったら見ていただけると嬉しいです！</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/javascript/1382/" title="【JavaScript】アナログ時計の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/64-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/64-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JavaScript】アナログ時計の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">先日はJavaScriptでカウントダウンタイマーを作成してみました。今回は前回の記事の内容を利用してアナログ時計を作ってみようともいます。サンプルもありますのでコピペで簡単にできます！初心者の方や勉強されている方におすすめなので、良かったら試してみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.24</div></div></div></div></a>
</div></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">HTML</a></li><li><a href="#toc2" tabindex="0">JavaScript</a></li><li><a href="#toc3" tabindex="0">デモ</a></li><li><a href="#toc4" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">HTML</span></h2>



<p>今回のHTMLはとてもシンプルです。</p>



<p>現在時刻とカウントダウンタイマーのp要素をそれぞれ作成しています。</p>



<pre class="wp-block-code html"><code>&lt;body&gt;
    &lt;p id="now"&gt;&lt;/p&gt;
    &lt;p id="count_down"&gt;&lt;/p&gt;
&lt;/body&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc2">JavaScript</span></h2>



<p>時間の表示については、JavaScriptを使用しています。</p>



<p>主に現在時刻の出力とカウントダウンの出力とそれぞれ実装しています。</p>



<pre class="wp-block-code javascript"><code>// 曜日の配列を取得
var week_day = &#91;"日", "月", "火", "水", "木", "金", "土"];

window.onload = function () {

    var id = setInterval(function(){
        // 現在日時を出力
        var now_date = new Date();
        var now_date_str = "今日の日付は" + get_nichiji(now_date) + "（" + week_day&#91;now_date.getDay()] + "）です。" + "&lt;br&gt;" +
            "時刻は" + get_jikoku(now_date) + "です。";
        
        document.getElementById("now").innerHTML = now_date_str;
        
        // 年末までのカウントダウン
        var nen_matsu = new Date(now_date.getFullYear() + 1 + "/1/01");
        var count_down = nen_matsu.getTime() - now_date.getTime();
        
        // 日にちから計算していく
        var day = Math.floor(count_down / (1000 * 60 * 60 * 24));
        count_down -=  (day *(1000 * 60 * 60 * 24));
        var hour = Math.floor(count_down / (1000 * 60 * 60));
        count_down -= (hour *(1000 * 60 * 60));
        var minutes =  Math.floor(count_down / (1000 * 60));
        count_down -= (minutes * (1000 * 60));
        var second = Math.floor(count_down / 1000);
        
        var count_down_str = get_nichiji(nen_matsu) + "まで、あと" +
            day + "日" + hour + "時" + minutes + "分" + second + "秒" + "です。";
        document.getElementById("count_down").innerHTML = count_down_str;
    }, 1000);
};

// 月を正しい表示で出力
function get_month(date_obj) {
    return date_obj.getMonth() + 1;
}

// 〇〇年〇〇月〇〇日表示
function get_nichiji(date_obj) {
    return date_obj.getFullYear() + "年" + get_month(date_obj) + "月" + date_obj.getDate() + "日";
}

// 〇〇時〇〇分〇〇秒表示
function get_jikoku(date_obj) {
    return date_obj.getHours() + "時" + date_obj.getMinutes() + "分" + date_obj.getSeconds() + "秒";
}

// 曜日取得
function get_week_day(date_obj) {
    return week_day&#91;date_obj.getDay()];
}</code></pre>



<h2 class="wp-block-heading"><span id="toc3">デモ</span></h2>



<p>出力内容はこちらです！<br>1秒ごとに<span class="marker-under-red">現在時刻</span>と<span class="marker-under-red">翌年の1月1日までのカウントダウン</span>の秒数が表示されています。</p>



<p>↓の赤枠に何も表示されていない場合、数秒そのままでお待ちください。</p>



<div class="wp-block-sbd-background-block sbd-bg-color sbd-inner-block-init is-style-red">
    <p id="now"></p>
    <p id="count_down"></p>
</div>
    <script type="text/javascript">
        // 曜日の配列を取得
        var week_day = ["日", "月", "火", "水", "木", "金", "土"];

        window.onload = function () {

            var id = setInterval(function(){
                // 現在日時を出力
                var now_date = new Date();
                var now_date_str = "今日の日付は" + get_nichiji(now_date) + "（" + week_day[now_date.getDay()] + "）です。" + "<br>" +
                    "時刻は" + get_jikoku(now_date) + "です。";

                document.getElementById("now").innerHTML = now_date_str;

                // 年末までのカウントダウン
                var nen_matsu = new Date(now_date.getFullYear() + 1 + "/1/01");
                var count_down = nen_matsu.getTime() - now_date.getTime();

                // 日にちから計算していく
                var day = Math.floor(count_down / (1000 * 60 * 60 * 24));
                count_down -=  (day *(1000 * 60 * 60 * 24));
                var hour = Math.floor(count_down / (1000 * 60 * 60));
                count_down -= (hour *(1000 * 60 * 60));
                var minutes =  Math.floor(count_down / (1000 * 60));
                count_down -= (minutes * (1000 * 60));
                var second = Math.floor(count_down / 1000);

                var count_down_str = get_nichiji(nen_matsu) + "まで、あと" +
                    day + "日" + hour + "時" + minutes + "分" + second + "秒" + "です。";
                document.getElementById("count_down").innerHTML = count_down_str;
            }, 1000);
        };

        // 月を正しい表示で出力
        function get_month(date_obj) {
            return date_obj.getMonth() + 1;
        }

        // 〇〇年〇〇月〇〇日表示
        function get_nichiji(date_obj) {
            return date_obj.getFullYear() + "年" + get_month(date_obj) + "月" + date_obj.getDate() + "日";
        }

        // 〇〇時〇〇分〇〇秒表示
        function get_jikoku(date_obj) {
            return date_obj.getHours() + "時" + date_obj.getMinutes() + "分" + date_obj.getSeconds() + "秒";
        }

        // 曜日取得
        function get_week_day(date_obj) {
            return week_day[date_obj.getDay()];
        }
    </script>



<h2 class="wp-block-heading"><span id="toc4">まとめ</span></h2>



<p>いかがでしたでしょうか。</p>



<p>今回はJavaScriptでカウントダウンタイマーを作成しました！<br>日付の表示方法やカウントするためのタイマー処理を主に使用しました。</p>



<p>今回は機能を主にご紹介しましたが、CSSでスタイルを設定して<br>おしゃれなカウントダウンタイマーを作ってみてはいかがでしょうか。</p>



<p>アナログ時計を作った記事も良かったら見てください！</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/javascript/1382/" title="【JavaScript】アナログ時計の作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/64-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/64-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JavaScript】アナログ時計の作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">先日はJavaScriptでカウントダウンタイマーを作成してみました。今回は前回の記事の内容を利用してアナログ時計を作ってみようともいます。サンプルもありますのでコピペで簡単にできます！初心者の方や勉強されている方におすすめなので、良かったら試してみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.24</div></div></div></div></a>
</div></figure>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1200/">【JavaScript】カウントダウンタイマーの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1200/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/2835/</link>
					<comments>https://nyanblog2222.com/programming/javascript/2835/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 09 Jan 2021 02:57:23 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[カレンダー]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[作成]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[演習]]></category>
		<category><![CDATA[祝日]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2835</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは！前回はJavaScriptでカレンダーを作成しました。今回は、前回作成したカレンダーに祝日対応を組み込んでいきたいと思います！ 前回の記事は下のリンクからどうぞ♪ 目次 はじめにフロー（箇条書き）CSVファイ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2835/">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは！<br>前回はJavaScriptでカレンダーを作成しました。<br>今回は、前回作成したカレンダーに祝日対応を組み込んでいきたいと思います！</p>



<p>前回の記事は下のリンクからどうぞ♪</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-22" checked><label class="toc-title" for="toc-checkbox-22">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">フロー（箇条書き）</a><ol><li><a href="#toc3" tabindex="0">CSVファイル読み込み</a></li><li><a href="#toc4" tabindex="0">当月の日付判定</a></li></ol></li><li><a href="#toc5" tabindex="0">HTML</a></li><li><a href="#toc6" tabindex="0">CSS</a></li><li><a href="#toc7" tabindex="0">JavaScript</a><ol><li><a href="#toc8" tabindex="0">コード</a></li><li><a href="#toc9" tabindex="0">解説</a><ol><li><a href="#toc10" tabindex="0">・祝日データ（CSVファイル）取得</a></li><li><a href="#toc11" tabindex="0">・当月の日付を設定　コード：70～77行目</a></li><li><a href="#toc12" tabindex="0">・日付チェック　checkDate関数</a></li><li><a href="#toc13" tabindex="0">・当日判定　isToday関数</a></li><li><a href="#toc14" tabindex="0">・祝日判定　isHoliday関数</a></li></ol></li></ol></li><li><a href="#toc15" tabindex="0">デモ</a></li><li><a href="#toc16" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>祝日の対応ですが、今回はCSVファイルを読み込んで日付判定を行います。<br>CSVファイルは<a href="https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html">内閣府のWebサイト</a>から取得できます。<br>※ 文字コードをShift-JISからUTF-8に変更しました。</p>



<p>直接ダウンロードされる場合は<a href="https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv">ここをクリック</a>してください。</p>



<p>データは日付、祝日名の2項目で作成されています。</p>



<h2 class="wp-block-heading"><span id="toc2">フロー（箇条書き）</span></h2>



<p>箇条書きで処理フローを記述していきます。<br>CSVファイルの読み込みと当月の日付判定のそれぞれで変更を加えます。</p>



<h3 class="wp-block-heading"><span id="toc3">CSVファイル読み込み</span></h3>



<ol class="wp-block-list">
<li>CSVファイルを読み込み</li>



<li>読み込み完了後、カレンダー表示</li>
</ol>



<h3 class="wp-block-heading"><span id="toc4">当月の日付判定</span></h3>



<ol class="wp-block-list">
<li>その日付の情報を取得（本日か、祝日か等）</li>



<li>条件に応じてカレンダー（HTML）を設定</li>
</ol>



<h2 class="wp-block-heading"><span id="toc5">HTML</span></h2>



<pre class="wp-block-code html"><code>&lt;div class="wrapper"&gt;
    &lt;!-- xxxx年xx月を表示 --&gt;
    &lt;h1 id="header"&gt;&lt;/h1&gt;

    &lt;!-- ボタンクリックで月移動 --&gt;
    &lt;div id="next-prev-button"&gt;
        &lt;button id="prev" onclick="prev()"&gt;‹&lt;/button&gt;
        &lt;button id="next" onclick="next()"&gt;›&lt;/button&gt;
    &lt;/div&gt;

    &lt;!-- カレンダー --&gt;
    &lt;div id="calendar"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>



<p>こちらの記事のHTMLと同じなので、解説は省略します♪</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/2749/" title="【初心者向け】JavaScriptでカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptでカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカレンダーをライブラリなしで作り方を紹介。前月、次月を含めた1週間表示や日付の値を取得する方法をHTML,CSSソースやデモページ付きで解説！プログラミング初心者の方へ勉強や参考に！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.07</div></div></div></div></a>
</div></figure>



<h2 class="wp-block-heading"><span id="toc6">CSS</span></h2>



<p><a href="https://nyanblog2222.com/programming/javascript/2749/" target="_blank">前回の記事</a>とほとんど変わりなしですが、<br><span class="marker-under-blue">祝日のクラス（=holiday）に日曜日と同様のcolorスタイルの設定</span>を追加しました。</p>



<pre class="wp-block-code"><code>td:first-child,
td.holiday{
    color: red;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc7">JavaScript</span></h2>



<h3 class="wp-block-heading"><span id="toc8">コード</span></h3>



<p>全体のコードです。<br>次項で解説しますが、前回の投稿で解説した内容は割愛いたします。</p>



<pre class="wp-block-code"><code>const week = &#91;"日", "月", "火", "水", "木", "金", "土"];
const today = new Date();
// 月末だとずれる可能性があるため、1日固定で取得
var showDate = new Date(today.getFullYear(), today.getMonth(), 1);

// 祝日取得
var request;
window.onload = function () {
    request = new XMLHttpRequest();
    request.open('get', 'syukujitsu.csv', true);
    request.send(null);
    request.onload = function () {
        // 初期表示
        showProcess(today, calendar);
    };
};

// 前の月表示
function prev(){
    showDate.setMonth(showDate.getMonth() - 1);
    showProcess(showDate);
}

// 次の月表示
function next(){
    showDate.setMonth(showDate.getMonth() + 1);
    showProcess(showDate);
}

// カレンダー表示
function showProcess(date) {
    var year = date.getFullYear();
    var month = date.getMonth(); // 0始まり
    document.querySelector('#header').innerHTML = year + "年 " + (month + 1) + "月";

    var calendar = createProcess(year, month);
    document.querySelector('#calendar').innerHTML = calendar;
}

// カレンダー作成
function createProcess(year, month) {
    // 曜日
    var calendar = "&lt;table&gt;&lt;tr class='dayOfWeek'&gt;";
    for (var i = 0; i &lt; week.length; i++) {
        calendar += "&lt;th&gt;" + week&#91;i] + "&lt;/th&gt;";
    }
    calendar += "&lt;/tr&gt;";

    var count = 0;
    var startDayOfWeek = new Date(year, month, 1).getDay();
    var endDate = new Date(year, month + 1, 0).getDate();
    var lastMonthEndDate = new Date(year, month, 0).getDate();
    var row = Math.ceil((startDayOfWeek + endDate) / week.length);

    // 1行ずつ設定
    for (var i = 0; i &lt; row; i++) {
        calendar += "&lt;tr&gt;";
        // 1colum単位で設定
        for (var j = 0; j &lt; week.length; j++) {
            if (i == 0 &amp;&amp; j &lt; startDayOfWeek) {
                // 1行目で1日まで先月の日付を設定
                calendar += "&lt;td class='disabled'&gt;" + (lastMonthEndDate - startDayOfWeek + j + 1) + "&lt;/td&gt;";
            } else if (count &gt;= endDate) {
                // 最終行で最終日以降、翌月の日付を設定
                count++;
                calendar += "&lt;td class='disabled'&gt;" + (count - endDate) + "&lt;/td&gt;";
            } else {
                // 当月の日付を曜日に照らし合わせて設定
                count++;
                var dateInfo = checkDate(year, month, count);
                if(dateInfo.isToday){
                    calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
                } else if(dateInfo.isHoliday) {
                    calendar += "&lt;td class='holiday' title='" + dateInfo.holidayName + "'&gt;" + count + "&lt;/td&gt;";
                } else {
                    calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
                }
            }
        }
        calendar += "&lt;/tr&gt;";
    }
    return calendar;
}

// 日付チェック
function checkDate(year, month, day) {
    if(isToday(year, month, day)){
        return {
            isToday: true,
            isHoliday: false,
            holidayName: ""
        };
    }

    var checkHoliday = isHoliday(year, month, day);
    return {
        isToday: false,
        isHoliday: checkHoliday&#91;0],
        holidayName: checkHoliday&#91;1],
    };
}

// 当日かどうか
function isToday(year, month, day) {
    return (year == today.getFullYear()
        &amp;&amp; month == (today.getMonth())
        &amp;&amp; day == today.getDate());
    }

// 祝日かどうか
function isHoliday(year, month, day) {
    var checkDate = year + '/' + (month + 1) + '/' + day;
    var dateList = request.responseText.split('\n');
    // 1行目はヘッダーのため、初期値1で開始
    for (var i = 1; i &lt; dateList.length; i++) {
        if (dateList&#91;i].split(',')&#91;0] === checkDate) {
            return &#91;true, dateList&#91;i].split(',')&#91;1]];
        }
    }
    return &#91;false, ""];
}</code></pre>



<h3 class="wp-block-heading"><span id="toc9">解説</span></h3>



<h4 class="wp-block-heading"><span id="toc10">・祝日データ（CSVファイル）取得</span></h4>



<pre class="wp-block-code"><code><em>// 祝日取得</em>
<strong>var</strong> request;
window.onload = <strong>function</strong> () {
&nbsp; &nbsp; request = <strong>new</strong> XMLHttpRequest();
&nbsp; &nbsp; request.open('get', 'syukujitsu.csv', true);
&nbsp; &nbsp; request.send(null);
&nbsp; &nbsp; request.onload = <strong>function</strong> () {
&nbsp; &nbsp; &nbsp; <em>// 初期表示</em>
&nbsp; &nbsp; &nbsp; showProcess(today, calendar);
&nbsp; &nbsp; };
};</code></pre>



<p><span class="marker-under-blue">XMLHttpRequestオブジェクトを使用して、変数 request にCSVデータを格納</span>しています。<br>1. request.open()関数でデータ取込のリクエストを行います。<br>2. request.send()関数でリスエストをサーバに送信します。<br>3. 7～10行目はロードが成功して完了後に呼ばれます。</p>



<p>つまり、CSVファイルの読み込みが完了した後にカレンダー表示の関数（showProcess）を呼び出しています。</p>



<h4 class="wp-block-heading"><span id="toc11">・当月の日付を設定　コード：70～77行目</span></h4>



<pre class="wp-block-code"><code><strong>var</strong> dateInfo = checkDate(year, month, count);
<strong>if</strong>(dateInfo.isToday){
    calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
} <strong>else</strong> <strong>if</strong>(dateInfo.isHoliday) {
    calendar += "&lt;td class='holiday' title='" + dateInfo.holidayName + "'&gt;" + count + "&lt;/td&gt;";
} <strong>else</strong> {
    calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
}</code></pre>



<p>1行目：変数 dateInfoに日付チェックの戻り値を設定します。</p>



<p>2～8行目：dateInfoを使って条件に応じて日付を設定していきます。</p>



<p>・dateInfo.isTodayがtrueの場合、クラスtodayを付与して設定。<br>・<span class="marker-under-blue">dateInfo.isHolidayがtrueの場合、クラスholidayを付与、titleに祝日名を設定</span>。<br>・上記以外の場合、日付をそのまま設定。</p>



<p><span class="marker-under-blue">titleに祝日名を設定しているのは、祝日名をツールチップとして表示させるためです。</span><br>ツールチップ：カーソルやマウスポインタを合わせると小さな領域が注釈が表示されるもの。</p>



<h4 class="wp-block-heading"><span id="toc12">・日付チェック　checkDate関数</span></h4>



<p>引数：year（年）、month（月）、day（日）<br>戻り値：日付の情報<br>・当日かどうか（Bool）<br>・祝日かどうか（Bool）<br>・祝日名（文字列）</p>



<pre class="wp-block-code"><code><em>// 日付チェック</em>
<strong>function</strong> <strong>checkDate</strong>(year, month, day) {
    <strong>if</strong>(isToday(year, month, day)){
        <strong>return</strong> {
            isToday: true,
            isHoliday: false,
            holidayName: ""
        };
    }

    <strong>var</strong> checkHoliday = isHoliday(year, month, day);
    <strong>return</strong> {
        isToday: false,
        isHoliday: checkHoliday&#91;0],
        holidayName: checkHoliday&#91;1],
    };
}</code></pre>



<p>日付チェックの関数です。<br>条件に応じて戻り値のオブジェクトを作成しています。</p>



<h4 class="wp-block-heading"><span id="toc13">・当日判定　isToday関数</span></h4>



<p>引数：year（年）、month（月）、day（日）<br>戻り値：当日かどうか（Bool）</p>



<pre class="wp-block-code"><code><em>// 当日かどうか</em>
<strong>function</strong> <strong>isToday</strong>(year, month, day) {
    <strong>return</strong> (year == today.getFullYear()
    &amp;&amp; month == (today.getMonth())
    &amp;&amp; day == today.getDate());
}</code></pre>



<p>today（Date型）を使って、当日かどうかを判定します。</p>



<h4 class="wp-block-heading"><span id="toc14">・祝日判定　isHoliday関数</span></h4>



<p>引数：year（年）、month（月）、day（日）<br>戻り値：配列 [祝日かどうか（Bool）, 祝日名]</p>



<pre class="wp-block-code"><code><em>// 祝日かどうか</em>
<strong>function</strong> <strong>isHoliday</strong>(year, month, day) {
    <strong>var</strong> checkDate = year + '/' + (month + 1) + '/' + day;
    <strong>var</strong> dateList = request.responseText.split('\n');
    <em>// 1行目はヘッダーのため、初期値1で開始</em>
    <strong>for</strong> (<strong>var</strong> i = 1; i &lt; dateList.length; i++) {
        <strong>if</strong> (dateList&#91;i].split(',')&#91;0] === checkDate) {
            <strong>return</strong> &#91;true, dateList&#91;i].split(',')&#91;1]];
        }
    }
    <strong>return</strong> &#91;false, ""];
}</code></pre>



<p>3行目：CSVデータの日付はYYYY/MM/DD形式のため、<br>引数で渡された年月日をYYYY/MM/DD形式で変数checkDateに設定。</p>



<p>4行目：変数dataListには、CSVデータを行毎に配列に格納。</p>



<p>6～10行目：CSVの行数分for文を回します。<br>ファイルの1行目はヘッダー行のため、初期値=1で設定。</p>



<p>7～9行目：<br>祝日：dateList[i].split(‘,’)[0]<br>祝日名：dateList[i].split(‘,’)[1]</p>



<p><span class="marker-under-blue">祝日とcheckDateが一致する場合、戻り値を配列 [true, 祝日名]で設定して処理を完了。<br>どのデータとも一致しない場合は戻り値を配列 [false, 空文字]でセットして処理を完了。</span></p>



<h2 class="wp-block-heading"><span id="toc15">デモ</span></h2>



<p><a href="https://nyanblog2222.com/demo/calender2/">こちらがデモページ</a>になります。<br>祝日の日付が赤くなっており、該当の日付にカーソルを合わせると祝日の名前が表示されます。</p>



<p>ただ、<span class="marker-under-red">このCSVファイルはその年分までの日付しか入っていないため、<br>2024年以降の祝日には対応されていません。ご注意ください…。</span></p>



<h2 class="wp-block-heading"><span id="toc16">最後に</span></h2>



<p>いかがでしたでしょうか。<br>カレンダーを確認するときに祝日は分かっている方が見やすいですね♪</p>



<p>実装も簡単にできたのでお勧めです。</p>



<p>良ければ他の投稿もご覧ください！</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2835/">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/2835/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】JavaScriptでカレンダー作成【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/2749/</link>
					<comments>https://nyanblog2222.com/programming/javascript/2749/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 07 Jan 2021 04:29:22 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[カレンダー]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[作成]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[演習]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2749</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは！今回はJavaScriptでカレンダーを作成してみました。カレンダー作成にはライブラリも存在しますが、勉学のために作成する方が多いかと思いますので今回は使用していません。自作すると、カスタマイズが容易であるこ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2749/">【初心者向け】JavaScriptでカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/67.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/67-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは！<br>今回はJavaScriptでカレンダーを作成してみました。<br>カレンダー作成にはライブラリも存在しますが、勉学のために作成する方が多いかと思いますので今回は使用していません。自作すると、カスタマイズが容易であることもメリットですね！</p>



<p>本記事の続きで<span class="marker-under-red">カレンダーに祝日も反映</span>させました！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a href="https://nyanblog2222.com/javascript/2835/" title="【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScriptで祝日対応のカレンダーを作成しました。内容：内閣府のWebサイトから取得したCSVファイルを読み込んで日付判定を行い、祝日を赤字表示させツールチップに祝日名を表示する。var request = new XMLHttpRequest();...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.09</div></div></div></div></a>
</div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-24" checked><label class="toc-title" for="toc-checkbox-24">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">フロー（箇条書き）</a></li><li><a href="#toc3" tabindex="0">HTML</a></li><li><a href="#toc4" tabindex="0">CSS</a></li><li><a href="#toc5" tabindex="0">JavaScript</a><ol><li><a href="#toc6" tabindex="0">コード</a></li><li><a href="#toc7" tabindex="0">解説</a><ol><li><a href="#toc8" tabindex="0">・グローバル変数の定義</a></li><li><a href="#toc9" tabindex="0">・初期表示</a></li><li><a href="#toc10" tabindex="0">・prev()、next()関数</a></li><li><a href="#toc11" tabindex="0">・カレンダー表示　showProcess関数</a></li><li><a href="#toc12" tabindex="0">・カレンダー作成　createProcess関数</a></li></ol></li></ol></li><li><a href="#toc13" tabindex="0">デモ</a></li><li><a href="#toc14" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>まずは<span class="marker-under-red">カレンダーに持たせる機能を決定</span>します。<br>今回は以下の機能を持たせることにしました。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-cyan-bluish-gray-border-color">
<ul class="wp-block-list">
<li>ヘッダーに年月を表示</li>



<li>ボタンで月の移動ができる</li>



<li>余白に先月、翌月の日付を灰色で表示</li>



<li>本日の日付に色をつける</li>
</ul>
</div>



<p>実際に作成したものですが、イメージ図はこちらです。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="600" height="376" src="https://nyanblog2222.com/wp-content/uploads/2021/01/20210107_01.png" alt="カレンダー作成イメージ図" class="wp-image-2760" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/20210107_01.png 600w, https://nyanblog2222.com/wp-content/uploads/2021/01/20210107_01-300x188.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure>



<p>また、次以降の投稿で祝日、スケジュール入力の機能を追加したいと考えています。</p>



<h2 class="wp-block-heading"><span id="toc2">フロー（箇条書き）</span></h2>



<p>次に箇条書きで処理フローを記述します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-cyan-bluish-gray-border-color">
<ol class="wp-block-list">
<li>日付オブジェクトを取得</li>



<li>年月を表示</li>



<li>カレンダーを作成
<ol class="wp-block-list">
<li>曜日の行を作成</li>



<li>1日が何曜日からはじまるか取得</li>



<li>当月が何行になるか算出</li>



<li>月曜日から2. で取得した行数分日付を設定</li>
</ol>
</li>



<li>カレンダーを表示</li>
</ol>
</div>



<p>こちらで実際にコーディングを進めていきます。</p>



<h2 class="wp-block-heading"><span id="toc3">HTML</span></h2>



<p>まずはHTMLを作成していきます。<br>作成しているのは、以下の3つです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-cyan-bluish-gray-border-color">
<ol class="wp-block-list">
<li>年月表示のヘッダー</li>



<li>月移動のボタン</li>



<li>カレンダー</li>
</ol>
</div>



<pre class="wp-block-code html"><code>&lt;div class="wrapper"&gt;
    &lt;!-- xxxx年xx月を表示 --&gt;
    &lt;h1 id="header"&gt;&lt;/h1&gt;

    &lt;!-- ボタンクリックで月移動 --&gt;
    &lt;div id="next-prev-button"&gt;
        &lt;button id="prev" onclick="prev()"&gt;‹&lt;/button&gt;
        &lt;button id="next" onclick="next()"&gt;›&lt;/button&gt;
    &lt;/div&gt;

    &lt;!-- カレンダー --&gt;
    &lt;div id="calendar"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc4">CSS</span></h2>



<p>次にCSSでスタイルを決定します。<br>この辺りは好きなようにカスタマイズをしていただいて良いと思います！</p>



<p>ただ、JavaScriptで以下にクラスを設定しているので、ご注意ください。</p>



<p><span class="marker-under-red"><span class="marker-under-red">先月、翌月の日付：disabled</span><br>当日：today</span></p>



<pre class="wp-block-code css"><code>@charset "utf-8";

/*全体*/
.wrapper{
    max-width: 600px;
    margin: 0 auto;
    color: #666;
}
#header {
    text-align: center;
    font-size: 24px;
    width: 100%;
    margin: 1rem 0 0;
}

/*カレンダー*/
#calendar {
    text-align: center;
    width: 100%;
}
table {
    outline: 2px solid #ddd;
    border-collapse: collapse;
    width: 100%;
}
th {
    color: #000;
}
th, td {
    outline: 1px solid #ddd;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
}
/*日曜日*/
td:first-child {
    color: red;
}
/*土曜日*/
td:last-child {
    color: blue;
}
/*前後月の日付*/
td.disabled {
    color: #ccc;
}
/*本日*/
td.today {
    background-color: #D65E72;
    color: #fff;
}

/*ボタン*/
#next-prev-button {
    position: relative;
}
#next-prev-button button{
    cursor: pointer;
    background: #B78D4A;
    color: #fff;
    border: 1px solid #B78D4A;
    border-radius: 4px;
    font-size: 1rem;
    padding: 0.5rem 2rem;
    margin: 1rem 0;
}
#next-prev-button button:hover{
    background-color: #D4BB92;
    border-color: #D4BB92;
}
#prev {
    float: left;
}
#next {
    float: right;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc5">JavaScript</span></h2>



<p>JavaScriptで実際にカレンダーを作成、表示していきます。</p>



<h3 class="wp-block-heading"><span id="toc6">コード</span></h3>



<p>次項で詳しく解説していますが、コメントでも多少記述しています。<br>コピペも可能です！</p>



<pre class="wp-block-code javascript"><code>const week = &#91;"日", "月", "火", "水", "木", "金", "土"];
const today = new Date();
// 月末だとずれる可能性があるため、1日固定で取得
var showDate = new Date(today.getFullYear(), today.getMonth(), 1);

// 初期表示
window.onload = function () {
    showProcess(today, calendar);
};
// 前の月表示
function prev(){
    showDate.setMonth(showDate.getMonth() - 1);
    showProcess(showDate);
}

// 次の月表示
function next(){
    showDate.setMonth(showDate.getMonth() + 1);
    showProcess(showDate);
}

// カレンダー表示
function showProcess(date) {
    var year = date.getFullYear();
    var month = date.getMonth();
    document.querySelector('#header').innerHTML = year + "年 " + (month + 1) + "月";

    var calendar = createProcess(year, month);
    document.querySelector('#calendar').innerHTML = calendar;
}

// カレンダー作成
function createProcess(year, month) {
    // 曜日
    var calendar = "&lt;table&gt;&lt;tr class='dayOfWeek'&gt;";
    for (var i = 0; i &lt; week.length; i++) {
        calendar += "&lt;th&gt;" + week&#91;i] + "&lt;/th&gt;";
    }
    calendar += "&lt;/tr&gt;";

    var count = 0;
    var startDayOfWeek = new Date(year, month, 1).getDay();
    var endDate = new Date(year, month + 1, 0).getDate();
    var lastMonthEndDate = new Date(year, month, 0).getDate();
    var row = Math.ceil((startDayOfWeek + endDate) / week.length);

    // 1行ずつ設定
    for (var i = 0; i &lt; row; i++) {
        calendar += "&lt;tr&gt;";
        // 1colum単位で設定
        for (var j = 0; j &lt; week.length; j++) {
            if (i == 0 &amp;&amp; j &lt; startDayOfWeek) {
                // 1行目で1日まで先月の日付を設定
                calendar += "&lt;td class='disabled'&gt;" + (lastMonthEndDate - startDayOfWeek + j + 1) + "&lt;/td&gt;";
            } else if (count &gt;= endDate) {
                // 最終行で最終日以降、翌月の日付を設定
                count++;
                calendar += "&lt;td class='disabled'&gt;" + (count - endDate) + "&lt;/td&gt;";
            } else {
                // 当月の日付を曜日に照らし合わせて設定
                count++;
                if(year == today.getFullYear()
                  &amp;&amp; month == (today.getMonth())
                  &amp;&amp; count == today.getDate()){
                    calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
                } else {
                    calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
                }
            }
        }
        calendar += "&lt;/tr&gt;";
    }
    return calendar;
}</code></pre>



<h3 class="wp-block-heading"><span id="toc7">解説</span></h3>



<p>先述したコードに対して細かく解説していきます！<br>結構長くなってしまったので、不要な方は飛ばしてください。</p>



<h4 class="wp-block-heading"><span id="toc8">・グローバル変数の定義</span></h4>



<pre class="wp-block-code javascript"><code>const week = &#91;"日", "月", "火", "水", "木", "金", "土"];</code></pre>



<p>曜日を格納した配列を定義しています。<br><span class="marker-under-blue">変更予定がないので、定数（const）で作成</span>しています。</p>



<pre class="wp-block-code javascript"><code>const today = new Date();
var showDate = new Date(today.getFullYear(), today.getMonth(), 1);</code></pre>



<p>・本日の日付オブジェクトを定数で宣言<br>・表示する日付オブジェクトを宣言</p>



<p>表示する日付オブジェクトは初期化では”today”の年月＋1日固定で作成します。</p>



<p><span class="marker-under">Q：なぜ”today”をそのまま使用しないか</span><br>A：前の月、次の月表示で”getMonth()”に+-1を行っていますが、末日だと先々月、もしくは翌々日になることがあります。</p>



<h4 class="wp-block-heading"><span id="toc9">・初期表示</span></h4>



<pre class="wp-block-code javascript"><code>window.onload = function () {
    showProcess(today, calendar);
};</code></pre>



<p>当日の日付オブジェクトを使用して、showProcess関数を呼び出して初期表示を行います。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {・・・};</code></pre>



<p>↑は<span class="marker-under-blue">HTMLが読み込まれた直後に呼び出される関数です。</span></p>



<h4 class="wp-block-heading"><span id="toc10">・prev()、next()関数</span></h4>



<pre class="wp-block-code javascript"><code>// 前の月表示
function prev(){
    showDate.setMonth(showDate.getMonth() - 1);
    showProcess(showDate);
}

// 次の月表示
function next(){
    showDate.setMonth(showDate.getMonth() + 1);
    showProcess(showDate);
}</code></pre>



<p>「＜」クリックでprev()、「＞」クリックでnext()の関数がそれぞれ呼び出されます。</p>



<p>prev()関数の場合はshowDateオブジェクトに1月分減算後、<br>next()関数の場合はshowDateオブジェクトに1月分加算後にshowProcess関数を呼び出してカレンダーを表示します。</p>



<h4 class="wp-block-heading"><span id="toc11">・カレンダー表示　showProcess関数</span></h4>



<p>引数：date（表示するDateオブジェクト）</p>



<pre class="wp-block-code javascript"><code>var year = date.getFullYear();
var month = date.getMonth();
document.querySelector('#header').innerHTML = year + "年 " + (month + 1) + "月";</code></pre>



<p>ヘッダー（id=&#8221;#header&#8221;）に年月を表示させます。<br>getMonth()は0始まりのため、1月の場合、0が取得されます。<br>そのため、3行目では (month + 1) で月を設定します。</p>



<pre class="wp-block-code"><code>var calendar = createProcess(year, month);
document.querySelector('#calendar').innerHTML = calendar;</code></pre>



<p>createProcess関数でカレンダーを作成し、id=&#8221;#calendar&#8221;にカレンダーを設定します。</p>



<h4 class="wp-block-heading"><span id="toc12">・カレンダー作成　createProcess関数</span></h4>



<p>引数：year（年）、month（月）<br>戻り値：作成したカレンダー</p>



<pre class="wp-block-code"><code>// 曜日
var calendar = "&lt;table&gt;&lt;tr class='dayOfWeek'&gt;";
for (var i = 0; i &lt; week.length; i++) {
    calendar += "&lt;th&gt;" + week&#91;i] + "&lt;/th&gt;";
}
calendar += "&lt;/tr&gt;";</code></pre>



<p>定数”week”を使用してカレンダー上部に表示させる、曜日を設定します。</p>



<pre class="wp-block-code"><code>var count = 0;
var startDayOfWeek = new Date(year, month, 1).getDay();
var endDate = new Date(year, month + 1, 0).getDate();
var lastMonthEndDate = new Date(year, month, 0).getDate();
var row = Math.ceil((startDayOfWeek + endDate) / week.length);</code></pre>



<p>日付を設定するのに必要な変数を定義します。<br>それぞれの変数は以下の内容を定義しています。</p>



<p>count：日付のカウント<br>startDayOfWeek：表示する月の1日の曜日<br>endDate：表示する月の末日<br>lastMonthEndDate：表示する先月の末日<br>row：カレンダー（日付部分）の行数</p>



<pre class="wp-block-code"><code>// 1行ずつ設定
for (var i = 0; i &lt; row; i++) {
    calendar += "&lt;tr&gt;";
    // 1colum単位で設定
    for (var j = 0; j &lt; week.length; j++) {
        if (i == 0 &amp;&amp; j &lt; startDayOfWeek) {
            // 1行目で1日まで先月の日付を設定
            calendar += "&lt;td class='disabled'&gt;"
                     + (lastMonthEndDate - startDayOfWeek + j + 1) + "&lt;/td&gt;";
        } else if (count &gt;= endDate) {
            // 最終行で最終日以降、翌月の日付を設定
            count++;
            calendar += "&lt;td class='disabled'&gt;" + (count - endDate) + "&lt;/td&gt;";
        } else {
            // 当月の日付を曜日に照らし合わせて設定
            count++;
            if(year == today.getFullYear()
              &amp;&amp; month == (today.getMonth())
              &amp;&amp; count == today.getDate()){
                calendar += "&lt;td class='today'&gt;" + count + "&lt;/td&gt;";
            } else {
                calendar += "&lt;td&gt;" + count + "&lt;/td&gt;";
            }
        }
    }
    calendar += "&lt;/tr&gt;";
}</code></pre>



<p>始めのfor文は行単位、2つ目のfor文はカラム（日付）単位で回します。</p>



<p>3行目、26行目ではtrタグで括っています。</p>



<p>6行目の条件は「1行目、かつ、1日の曜日未満」の場合に8、9行目の処理を行います。<br><span class="marker-under-blue">その場合にクラス「disabled」を付与して日付を設定します。</span><br>計算式は例で実際に当てはめてみましょう。</p>



<p>例：2021/01<br>lastMonthEndDate = 31<br>startDayOfWeek = 5 （金曜日）<br>日曜日：31 &#8211; 5 + 0 + 1 = 27<br>月曜日：31 &#8211; 5 + 1 + 1 = 28</p>



<p>10行目の条件は当月の最終日以降、翌月の日付を設定します。<br><span class="marker-under-blue">上記同様、<span class="marker-under-blue">クラス「disabled」を付与して日付を設定します。</span></span><span class="marker-under-blue"></span></p>



<p>それ以外の14行目～24行目の処理は当月の日付1日から末日まで入ります。<br>また、17行目～19行目の条件は本日の日付かどうかチェックしており、<span class="marker-under-blue">本日の場合はクラス「today」を付与しています。</span></p>



<h2 class="wp-block-heading"><span id="toc13">デモ</span></h2>



<p><a class="link" href="https://nyanblog2222.com/demo/calender1/">こちらがデモページ</a>になります。<br>初期表示は当月で表示され、本日が赤く表示されていると思います。</p>



<p>また、＜＞のボタンをクリックすることで月の移動ができますので、お試しください♪</p>



<h2 class="wp-block-heading"><span id="toc14">最後に</span></h2>



<p>いかがでしたでしょうか。<br>ライブラリを使わなくても意外と簡単に実装ができました！</p>



<p>この後、<span class="marker-under-red">カレンダーに祝日対応してみました</span>ので、<br>良ければこちらの投稿もご覧ください！</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a href="https://nyanblog2222.com/javascript/2835/" title="【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/68-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/68-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】JavaScriptで祝日対応のカレンダー作成【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScriptで祝日対応のカレンダーを作成しました。内容：内閣府のWebサイトから取得したCSVファイルを読み込んで日付判定を行い、祝日を赤字表示させツールチップに祝日名を表示する。var request = new XMLHttpRequest();...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.01.09</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a href="https://nyanblog2222.com/programming/javascript/4717/" title="【サンプル】JavaScriptのコードまとめリンク集" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/85-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/85-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【サンプル】JavaScriptのコードまとめリンク集</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では当ブログで上げているJavaScript記事のまとめリンク集になります。目次でカテゴリ分けをしているので、気になる内容がありましたら目次から飛んでみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.09.01</div></div></div></div></a>
</div>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/2749/">【初心者向け】JavaScriptでカレンダー作成【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/2749/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript/JS】Promiseの使い方(then/resolve/reject)</title>
		<link>https://nyanblog2222.com/programming/javascript/1627/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1627/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 18 Jul 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Promise]]></category>
		<category><![CDATA[then]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1627</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/75.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/75.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/75-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/75-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/75-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。今回は非同期処理で使うPromiseについて、使い方を紹介していきます。 Promiseは同期、非同期処理の考え方が分からないとチンプンカンプンになってしまうので、よく分からない方は先にこちらの記事をご覧くだ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1627/">【JavaScript/JS】Promiseの使い方(then/resolve/reject)</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/75.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/75.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/75-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/75-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/75-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。今回は非同期処理で使う<strong><span style="color: #b78d4a;" class="has-inline-color">Promise</span></strong>について、使い方を紹介していきます。</p>



<p>Promiseは<strong><span style="color: #b78d4a;" class="has-inline-color">同期、非同期処理</span></strong>の考え方が分からないとチンプンカンプンになってしまうので、よく分からない方は先にこちらの記事をご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/JavaScript/984/" title="【JavaScript】非同期処理と処理の順番について【初心者・入門】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/78-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/78-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JavaScript】非同期処理と処理の順番について【初心者・入門】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScriptは同期的でシングルスレッドの処理で実行されていますが、非同期処理が可能な言語です。ここでは、非同期処理と同期処理・スレッドについてまず説明し、その後遅延処理について説明していきます。同期処理はプログラムの記述順に1つずつ実行されます。そのため、次の処理は前の処理が終わらないと実行するこ...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.02</div></div></div></div></a>
</div></figure>



<p>Promiseは<strong><span style="color: #b78d4a;" class="has-inline-color">非同期処理が完了した後に結果を返して</span></strong>います。<br>それでは、基本的な記述方法から始めていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-26" checked><label class="toc-title" for="toc-checkbox-26">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">基本的な「Promise」の書き方</a></li><li><a href="#toc2" tabindex="0">「then」を使ってコールバック処理を実行する方法</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">基本的な「Promise」の書き方</span></h2>



<p>まずは、Promiseオブジェクトを生成することです。<br><strong><span style="color: #b78d4a;" class="has-inline-color">newでPromiseのオブジェクト</span></strong>を、objに設定します。</p>



<pre class="wp-block-code javascript"><code>var obj = new Promise(function(resolve, reject) {
    resolve("成功");
});</code></pre>



<p>また、Promiseの<strong><span style="color: #b78d4a;" class="has-inline-color">引数の関数では、二つの関数を引数として</span></strong>取ることができ、それぞれ以下の状態での処理を実施することができます。</p>



<p>・resolve：<strong><span style="color: #b78d4a;" class="has-inline-color">処理成功</span></strong>時の処理<br>・reject：<strong><span style="color: #b78d4a;" class="has-inline-color">処理失敗</span></strong>時の処理</p>



<h2 class="wp-block-heading"><span id="toc2">「then」を使ってコールバック処理を実行する方法</span></h2>



<p>続いて、Promiseでthenを使用してコールバック処理を実行してみましょう。</p>



<pre class="wp-block-code java"><code>var promise_obj = new Promise(function(resolve, reject) {
    resolve();
});

promise_obj.then(function(success, failure) {
    console.log("こっちが後に出力されるよ");
});

console.log("こっちが先に出力されるよ");</code></pre>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">then関数</span></strong>はPromiseが返され、処理が成功もしくは失敗した場合にコールバック関数を取ります。</p>



<p>また、<strong><span style="color: #b78d4a;" class="has-inline-color">Promise.then()</span></strong>は非同期処理のため、6行目の方が先に処理として登録されますが、8行目の方が先に実行されます。<br>このように、非同期処理では時間がかかる処理が終わる前に後の処理が完了することがあります。</p>



<p>いかがでしたでしょうか。<br>今回はPromiseを使って基本的な非同期処理の制御方法について、ご紹介していきました。<br>他にもさまざまな関数が使用できるので、良かったら試してみてください。</p>



<p></p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1627/">【JavaScript/JS】Promiseの使い方(then/resolve/reject)</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1627/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】スクロール中にヘッダーを固定する方法【簡単・コピペOK】</title>
		<link>https://nyanblog2222.com/programming/javascript/1630/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1630/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 04 Jul 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[スクロール]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1630</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/73.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/73.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/73-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/73-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/73-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。ホームページを閲覧している中で、始めはヘッダーが固定されていなかったのに、途中から常に規定の位置で固定されているページをお見掛けしたことはありませんか？ 今回はスクロール中にヘッダーナビゲーションを固定させる [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1630/">【JavaScript】スクロール中にヘッダーを固定する方法【簡単・コピペOK】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/73.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/73.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/73-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/73-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/73-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。ホームページを閲覧している中で、始めはヘッダーが固定されていなかったのに、途中から常に規定の位置で固定されているページをお見掛けしたことはありませんか？</p>



<p>今回はスクロール中にヘッダーナビゲーションを固定させる方法をご紹介していきたいと思います。</p>



<p>また、本記事のコードではJQueryを使用しています。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-28" checked><label class="toc-title" for="toc-checkbox-28">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">HTML</a></li><li><a href="#toc2" tabindex="0">CSS</a></li><li><a href="#toc3" tabindex="0">JavaScript</a></li><li><a href="#toc4" tabindex="0">デモページ</a></li><li><a href="#toc5" tabindex="0">ひとこと</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">HTML</span></h2>



<p>HTMLでは、トップ画像とナビゲーション、サイトの長さを出すためにsection・footer要素を置いています。</p>



<pre class="wp-block-code html"><code>&lt;div id="top_visual">&lt;/div>
&lt;nav>
    &lt;div class="wrapper">
        &lt;ul>
            &lt;li class="item">&lt;a href="#news">News&lt;/a>&lt;/li>
            &lt;li class="item">&lt;a href="#about">About&lt;/a>&lt;/li>
            &lt;li class="item">&lt;a href="#blog">Blog&lt;/a>&lt;/li>
            &lt;li class="item">&lt;a href="#contact">Contact&lt;/a>&lt;/li>
        &lt;/ul>
    &lt;/div>
&lt;/nav>
&lt;section id="news">
    &lt;div class="wrapper">
        &lt;h1>News&lt;/h1>
        &lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p>
    &lt;/div>
&lt;/section>
&lt;section id="about">
    &lt;div class="wrapper">
        &lt;h1>About&lt;/h1>
        &lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p>
    &lt;/div>
&lt;/section>
&lt;section id="blog">
    &lt;div class="wrapper">
        &lt;h1>Blog&lt;/h1>
        &lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p>
    &lt;/div>
&lt;/section>
&lt;section id="contact">
    &lt;div class="wrapper">
        &lt;h1>Contact&lt;/h1>
        &lt;p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p>
    &lt;/div>
&lt;/section>
&lt;footer>
    &lt;p>© 2020 nyanblog&lt;/p>
&lt;/footer></code></pre>



<h2 class="wp-block-heading"><span id="toc2">CSS</span></h2>



<p>CSSで見た目を整えていきます。<br>また、JavaScriptでつけ外しをする「nav.fixed」でヘッダーを固定しています。</p>



<pre class="wp-block-code css"><code>@charset "utf-8";

*{
    margin: 0;
}

#top_visual {
    background: url(../img/visual.jpg) center center / cover no-repeat;
    height: 480px;
}

nav {
    background: #fff;
    width: 100%;
}

nav.fix {
    position: fixed;
    right: 0;
    top: 0;
}

.wrapper {
    margin: 0 auto;
    max-width: 100%;
}

nav ul {
    justify-content: flex-end;
    display: flex;
    list-style: none;

}

.item {
    margin: 0 2em;
    padding: 17px 0;
}

.item a {
    color: #B78D4A;
    text-decoration: none;
}

.item a:hover{
    color: #D5BC94;
}

h1 {
    font-size: 1.25rem;
    padding: 2rem 0;
    color: #B78D4A;
    font-weight: normal;
}

p {
    line-height: 2;
    padding-bottom: 4rem;
    color: #555A60;
}

section{
    background-color: #F0F0F0;
    padding: 2em;

}

section .wrapper{
    max-width: 800px;
}

footer {
    background-color: #B78D4A;
    padding: 2em;
}

footer p {
    font-size: .8em;
    color: #fff;
    max-width: 800px;
    padding: 0;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc3">JavaScript</span></h2>



<p>JavaScriptでスクロールイベントするたびに、<strong><span style="color:#b78d4a" class="has-inline-color">スクロールの位置とnav要素の位置と比較</span></strong>しています。<br>スクロールの位置を超えると、<strong><span style="color:#b78d4a" class="has-inline-color">nav要素に「fix」クラスを付与</span></strong>し、上部に固定させます。</p>



<pre class="wp-block-code javascript"><code>$(function() {
    var pos = $("nav").offset().top;
    var height = $("nav").outerHeight();
    $(window).scroll(function () {
        if ($(this).scrollTop() > pos) {
            $("nav").addClass("fix");
            $("body").css("padding-top", height);
        } else {
            $("nav").removeClass("fix");
            $("body").css("padding-top", 0);
        }
    });
});</code></pre>



<h2 class="wp-block-heading"><span id="toc4">デモページ</span></h2>



<p><strong><a class="link" href="https://nyanblog2222.com/demo/scroll_event/" target="_blank" aria-label="undefined (opens in a new tab)">デモページはこちら</a></strong>です。<br>実際にスクロールで動かしてヘッダーが固定されることを確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc5">ひとこと</span></h2>



<p>いかがでしたでしょうか。<br>今回はスクロールイベントを利用して、ヘッダーナビゲーションを固定させる方法をご紹介しました。</p>



<p>簡単にコピペで実装することができますので、良かったら試してみてください。<br>本記事をご覧くださり、ありがとうございました！</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1630/">【JavaScript】スクロール中にヘッダーを固定する方法【簡単・コピペOK】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1630/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)</title>
		<link>https://nyanblog2222.com/programming/javascript/1566/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1566/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Tue, 30 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[getJSON]]></category>
		<category><![CDATA[JSON]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1566</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/82.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/82.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。前回はJSONデータの基本操作方法を紹介しました。詳しくは、こちらからご覧ください。 今回はJQueryを使用したJSONファイルの読み込み方になります。コピペでも実装可能なので、宜しければご覧ください。 目 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1566/">【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/82.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/82.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。前回はJSONデータの基本操作方法を紹介しました。<br>詳しくは、こちらからご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1526" title="【JSON入門】JSONデータの参照・追加（更新）・削除" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONデータの参照・追加（更新）・削除</div><div class="blogcard-snippet internal-blogcard-snippet">こんにちは。前回はJSONファイルとは何かというのを紹介していきました。詳しくは、こちらからご覧ください。 今回はJSONデータの扱い方の続編となります。宜しければご覧ください。 操作するデータ こちらが今回サンプルのデータです。json_...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.28</div></div></div></div></a>
</div></figure>



<p>今回は<strong><span style="color:#b78d4a" class="has-inline-color">JQueryを使用したJSONファイルの読み込み方</span></strong>になります。<br>コピペでも実装可能なので、宜しければご覧ください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-30" checked><label class="toc-title" for="toc-checkbox-30">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">フォルダ構成</a></li><li><a href="#toc2" tabindex="0">JSONファイルの用意</a></li><li><a href="#toc3" tabindex="0">JSONファイルの読み込み</a><ol><li><a href="#toc4" tabindex="0">$.ajax()</a><ol><li><a href="#toc5" tabindex="0">読み込みの設定</a></li><li><a href="#toc6" tabindex="0">読み込み後の処理</a></li><li><a href="#toc7" tabindex="0">注意点</a></li></ol></li><li><a href="#toc8" tabindex="0">$.getJSON()</a></li></ol></li><li><a href="#toc9" tabindex="0">読み込みに失敗する場合</a><ol><li><a href="#toc10" tabindex="0">コンソール画面でエラーを確認</a></li><li><a href="#toc11" tabindex="0">JSONファイルのミスを防ぐWEBツール</a></li><li><a href="#toc12" tabindex="0">JSON変換ツール</a></li></ol></li><li><a href="#toc13" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">フォルダ構成</span></h2>



<p>今回使用するファイルのフォルダ構成はこちらです。</p>



<pre class="wp-block-code plaintext"><code>フォルダ構成
│
├─index.html
│    htmlファイル
├─script.js
│    javascript(JQuery)ファイル
└─data.json
     jsonファイル</code></pre>



<h2 class="wp-block-heading"><span id="toc2">JSONファイルの用意</span></h2>



<p>まずは読み込むJSONファイルを準備します。<br>ファイルの場所は、ローカルファイルではセキュリティの問題で絶対パスで設定できないため、相対パスで簡単に設定できる場所に配置してください。</p>



<p>絶対パス：C:\Users\Guest\AppData&#8230;やhttps://nyanblog2222.comなどルートディレクトリからやURLなど、<strong><span style="color:#b78d4a" class="has-inline-color">目的地までの経路を頭から最後まで</span></strong>記述</p>



<p>相対パス：../javascript/script.js など、<strong><span style="color:#b78d4a" class="has-inline-color">現在地から目的地までの経路</span></strong>を記述</p>



<p>こちらがファイルの内容です。</p>



<p>ファイル：data.json</p>



<pre class="wp-block-code json"><code>&#91;
    {
        "name": "yamada",
        "school_year": 2,
        "test": {
            "japanese": 65,
            "english": 80
        }
    },
    {
        "name": "hayashi",
        "school_year": 2,
        "test": {
            "japanese": 45,
            "english": 95
        }
    },
    {
        "name": "sato",
        "school_year": 1,
        "test": {
            "japanese": 75,
            "english": 35
        }
    }
]</code></pre>



<h2 class="wp-block-heading"><span id="toc3">JSONファイルの読み込み</span></h2>



<h3 class="wp-block-heading"><span id="toc4">$.ajax()</span></h3>



<p>$.ajax()での読み込み方法です。</p>



<pre class="wp-block-code javascript"><code>$.ajax({
    // 読み込みの設定
    type: "GET",
    url: "data.json", // ファイルパス（相対パス）
    dataType: "json", // ファイル形式
    async: false // 非同期通信フラグ
}).then(
    function (json) {
        // 読み込み成功時の処理
        console.log("読み込みに成功しました");
        console.log(json)
        json.forEach(function (data) {
            console.log(data)
        });
    },
    function () {
        // 読み込み失敗時の処理
        console.log("読み込みに失敗しました");
    }
);</code></pre>



<h4 class="wp-block-heading"><span id="toc5">読み込みの設定</span></h4>



<p>1～6行目で<span style="color:#b78d4a" class="has-inline-color"><strong>jsonを読み込む際の設定</strong></span>を記述しています。<br>ファイル名やファイルの配置を変更する場合、4行目の&#8221;data.json&#8221;を変更してください。<br>また、6行目の<strong><span style="color:#b78d4a" class="has-inline-color">async</span></strong>では、非同期通信フラグを設定しています。<br>デフォルトではtrueですが<strong><span style="color:#b78d4a" class="has-inline-color">falseに設定すると、読み込みが終わるまで他の処理を進めることができません</span></strong>。逆に読み込みが終わってる次の処理へ行いたい対場合、falseにした方が良いです。</p>



<h4 class="wp-block-heading"><span id="toc6">読み込み後の処理</span></h4>



<p>7行目で<strong><span style="color:#b78d4a" class="has-inline-color">then(成功,失敗)</span></strong>の処理が分かれています。<br>8～15行目では<strong><span style="color:#b78d4a" class="has-inline-color">読み込み成功時の処理</span></strong>を、16～19行目では<strong><span style="color:#b78d4a" class="has-inline-color">読み込み失敗時の処理</span></strong>を記述しています。</p>



<p>また、11行目でJSONファイルのデータ全てをコンソールへ出力、<br>12～14行目でJSON内の配列データを1つずつコンソールへ出力しています。</p>



<p>then()ではなく、<strong><span style="color:#b78d4a" class="has-inline-color">done()・fail()</span></strong>を使うことも可能です。<br>また、どの場合でも処理する<strong><span style="color:#b78d4a" class="has-inline-color">conplete()</span></strong>関数もあります。</p>



<h4 class="wp-block-heading"><span id="toc7">注意点</span></h4>



<p>Jquery1.8未満では、<strong><span style="color:#b78d4a" class="has-inline-color">success()、error()、conplete()</span></strong>が使用されていましたが、現在は<strong><span style="color:#b78d4a" class="has-inline-color">非推奨の関数</span></strong>となっております。<br>上記の関数が無くなることに備えて、<strong><span style="color:#b78d4a" class="has-inline-color">done()、fail()、complete()</span></strong>を使用するようにしましょう。</p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">done、fail、complete関数を使用</span></strong>した場合の記述です。</p>



<pre class="wp-block-code javascript"><code>$.ajax({
    // 読み込み設定
}).done(function(json){
    // 成功
}).fail(function(){
    // 失敗
}).always(function(){
    // 常に最後に処理
});</code></pre>



<h3 class="wp-block-heading"><span id="toc8">$.getJSON()</span></h3>



<p>$.getJSON()での読み込み方法です。</p>



<pre class="wp-block-code javascript"><code>$.getJSON("data.json")
    .done(function (json) {
        // 成功
    }).fail(function () {
        // 失敗
    }).always(function () {
        // 常に最後に処理
    });</code></pre>



<p>JSONファイルの読み込み -&gt; $.ajax() -&gt; 注意点で記述しているコードと似ています。<br><strong><span style="color:#b78d4a" class="has-inline-color">設定部分が$.ajax()と比べて少し簡略化</span></strong>されているところが違いですね！</p>



<p>$.ajax()でも、$.getJSON()でも使いやすいと思いますので、自分の好みで使用を決めていいと思います。</p>



<h2 class="wp-block-heading"><span id="toc9">読み込みに失敗する場合</span></h2>



<h3 class="wp-block-heading"><span id="toc10">コンソール画面でエラーを確認</span></h3>



<p>JSONファイルはちょっとしたミスで読み込めない場合が多くあります。<br>もちろん失敗した理由が分からなければ修正する方法も分かりません。</p>



<p>そこで、失敗時の関数でこのように記述し、コンソール画面を確認することである程度はエラーの内容を理解することができます。</p>



<pre class="wp-block-code javascript"><code>$.ajax({
    ・・・略
}).then(
    function (json) {
        ・・・略
    },
    function (jqXHR, textStatus, errorThrown) {
        // 読み込み失敗時の処理
        console.log("読み込みに失敗しました");
        // httpステータス
        console.log("jqXHR : " + jqXHR.status);
        // タイムアウト、パースエラー
        console.log("textStatus : " + textStatus);
        // エラーの詳細情報
        console.log("errorThrown : " + errorThrown.message);
    }
);</code></pre>



<p>大体は<strong><span style="color:#b78d4a" class="has-inline-color">「jqXHR.status」</span></strong>と<strong><span style="color:#b78d4a" class="has-inline-color">「errorThrown.message」</span></strong>の内容をネット検索等、調べたらエラーを解決することができると思います。</p>



<h3 class="wp-block-heading"><span id="toc11">JSONファイルのミスを防ぐWEBツール</span></h3>



<p><strong><a rel="noopener" class="link broken_link" href="https://lab.syncer.jp/Tool/JSON-Viewer/" target="_blank" label="undefined (opens in a new tab)">JSON Pretty Linter</a></strong></p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">JSONファイルの記述ミスを防ぐため</span></strong>のおすすめはこちらです。<br>こちらで事前にチェックすることでエラーの割合はかなり減ると思います。</p>



<h3 class="wp-block-heading"><span id="toc12">JSON変換ツール</span></h3>



<p><strong><a rel="noopener" class="link" aria-label="undefined (opens in a new tab)" href="https://csvjson.com/" target="_blank">CSV to JSON – CSVJSON</a></strong></p>



<p>CSVやSQLからJSONに変換できるツールです。<br>CSVやSQLを良く使用されるかたは一度使用してみてはいかがでしょうか。</p>



<h2 class="wp-block-heading"><span id="toc13">まとめ</span></h2>



<p>いかがでしたでしょうか。<br>今回はJQueryでJSONファイルを読み込む方法をご紹介しました。</p>



<p>JSONファイルを読み込むには、こちらの2つの方法で実装できます。<br>・<strong><span style="color:#b78d4a" class="has-inline-color">$.ajax()</span></strong><br>・<strong><span style="color:#b78d4a" class="has-inline-color">$.getJSON()</span></strong></p>



<p>また、JSONファイルの読み込みには、ちょっとしたミスでエラーが発生しますので、<strong><span style="color:#b78d4a" class="has-inline-color">デバッグでステータスコードを調べること</span></strong>が解決の近道です。</p>



<p>今回は全3回のJSONの記事でしたが、新しくJSONの内容を学んだ後には新しい記事を投稿しようとおもいます。良かったら次回も見てみてくださいね！</p>



<p>↓↓↓【JSON入門シリーズ♪】</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1514/" title="【JSON入門】JSONとは？JS相互変換について(stringify/parse)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONとは？JS相互変換について(stringify/parse)</div><div class="blogcard-snippet internal-blogcard-snippet">JSON入門として、JSONの基本知識と基本的な使い方（JSONとJavaScriptオブジェクトとの相互変換）を紹介します。相互変換については、stringfy関数を使用したエンコード方法（encode）、parse関数を使用したデコード方法（decode）を分かりやすく解説♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.27</div></div></div></div></a>
</div></figure>



<p><br></p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1526/" title="【JSON入門】JSONデータの参照・追加（更新）・削除" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONデータの参照・追加（更新）・削除</div><div class="blogcard-snippet internal-blogcard-snippet">こんにちは。前回はJSONファイルとは何かというのを紹介していきました。詳しくは、こちらからご覧ください。 今回はJSONデータの扱い方の続編となります。宜しければご覧ください。 操作するデータ こちらが今回サンプルのデータです。json_...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.28</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1566/" title="【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/82-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/82-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)</div><div class="blogcard-snippet internal-blogcard-snippet">JSON入門として、JQueryを使用したJSONファイルの読み込み方を紹介します。「$.ajax()」や「$.getJSON()」を使った読み込み方法や、読み込みに失敗する場合の対処方法など分かりやすく解説♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.30</div></div></div></div></a>
</div></figure>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1566/">【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1566/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JSON入門】JSONデータの参照・追加（更新）・削除</title>
		<link>https://nyanblog2222.com/programming/javascript/1526/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1526/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 28 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[データフォーマット]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1526</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/81.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/81.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。前回はJSONファイルとは何かというのを紹介していきました。詳しくは、こちらからご覧ください。 今回はJSONデータの扱い方の続編となります。宜しければご覧ください。 目次 操作するデータJSONデータを参照 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1526/">【JSON入門】JSONデータの参照・追加（更新）・削除</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/81.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/81.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。前回はJSONファイルとは何かというのを紹介していきました。<br>詳しくは、こちらからご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1514/" title="【JSON入門】JSONとは？JS相互変換について(stringify/parse)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONとは？JS相互変換について(stringify/parse)</div><div class="blogcard-snippet internal-blogcard-snippet">JSON入門として、JSONの基本知識と基本的な使い方（JSONとJavaScriptオブジェクトとの相互変換）を紹介します。相互変換については、stringfy関数を使用したエンコード方法（encode）、parse関数を使用したデコード方法（decode）を分かりやすく解説♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.27</div></div></div></div></a>
</div></figure>



<p>今回はJSONデータの扱い方の続編となります。<br>宜しければご覧ください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-32" checked><label class="toc-title" for="toc-checkbox-32">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">操作するデータ</a></li><li><a href="#toc2" tabindex="0">JSONデータを参照</a><ol><li><a href="#toc3" tabindex="0">データの参照方法</a></li><li><a href="#toc4" tabindex="0">特定のデータのみ参照する方法</a></li></ol></li><li><a href="#toc5" tabindex="0">JSONデータを追加</a><ol><li><a href="#toc6" tabindex="0">新規プロパティを指定して値を追加</a></li><li><a href="#toc7" tabindex="0">push関数でオブジェクトを追加</a></li><li><a href="#toc8" tabindex="0">値やオブジェクトを更新する場合</a></li></ol></li><li><a href="#toc9" tabindex="0">JSONデータを削除</a></li><li><a href="#toc10" tabindex="0">最後に</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">操作するデータ</span></h2>



<p>こちらが今回サンプルのデータです。<br><strong><span style="color:#b78d4a" class="has-inline-color">json_dataが配列</span></strong>、<strong><span style="color:#b78d4a" class="has-inline-color">testはオブジェクト</span></strong>になっています。<br>※違いは<strong><span style="color:#b78d4a" class="has-inline-color">” [ ] ”</span></strong>で括られているか、<strong><span style="color:#b78d4a" class="has-inline-color">” { } ”</span></strong>で括られているかです。</p>



<pre class="wp-block-code json"><code>var json_data = &#91;
    { name : "yamada", school_year : 2, test : { japanese : 65, english : 80 }, },
    { name : "hayashi", school_year : 2,  test : { japanese : 45, english : 95 }, },
    { name : "sato", school_year : 1,  test : { jananese : 75, english : 35 }, }
];</code></pre>



<h2 class="wp-block-heading"><span id="toc2">JSONデータを参照</span></h2>



<p>まずは、作成したJSONデータを参照する方法です。</p>



<h3 class="wp-block-heading"><span id="toc3">データの参照方法</span></h3>



<p>json_dataは<strong><span style="color:#b78d4a" class="has-inline-color">配列のため、添え字でデータを参照</span></strong>することができます。<br>それ以外は<strong><span style="color:#b78d4a" class="has-inline-color">オブジェクトの構造になっており、「オブジェクト.プロパティ</span>」</strong>のように、ドットで参照することができます。</p>



<pre class="wp-block-code javascript"><code>// name、school_year：プロパティ
console.log(json_data&#91;0].name); // => yamada
console.log(json_data&#91;1].school_year); // => 2

// testプロパティ（オブジェクト）にenglishプロパティを保持
console.log(json_data&#91;2].test.english); // => 35</code></pre>



<h3 class="wp-block-heading"><span id="toc4">特定のデータのみ参照する方法</span></h3>



<p><strong><span style="color:#b78d4a" class="has-inline-color">filter関数</span></strong>を使用することで、特定のデータのみ参照することができます。</p>



<pre class="wp-block-code javascript"><code>// filter関数
var data = json_data.filter(function (item) {
    // 英語が50点以上の人のデータを取得
    return item.test.english >= 50;
});

// 条件に一致したデータの”name”を参照
data.forEach(function (value){
    console.log(value.name) // => yamada, hayashi
});</code></pre>



<h2 class="wp-block-heading"><span id="toc5">JSONデータを追加</span></h2>



<h3 class="wp-block-heading"><span id="toc6">新規プロパティを指定して値を追加</span></h3>



<p>プロパティと値をそのままデータに追加する方法です。</p>



<p>それぞれ、<br>　配列と同じ階層に<strong><span style="color:#b78d4a" class="has-inline-color">areaプロパティ「&#8221;Tokyo&#8221;」</span></strong>が追加<br>　配列添字 [1] 内のオブジェクトに<strong><span style="color:#b78d4a" class="has-inline-color">areaプロパティ「&#8221;Osaka&#8221;」</span></strong>が追加<br>になっています。</p>



<pre class="wp-block-code javascript"><code>json_data.area = "Tokyo";
json_data&#91;1].area = "Osaka";

console.log(json_data)
// { name : "yamada", school_year : 2, test : { japanese : 65, english : 80 }, },
// { name : "hayashi", school_year : 2,  test : { japanese : 45, english : 95 }, area: "Osaka" },
// { name : "sato", school_year : 1,  test : { jananese : 75, english : 35 }, },
// area: "Toyko"</code></pre>



<h3 class="wp-block-heading"><span id="toc7">push関数でオブジェクトを追加</span></h3>



<p><strong><span style="color:#b78d4a" class="has-inline-color">オブジェクトを作成してpush関数</span></strong>を使う方法です。<br>push関数で追加したオブジェクトは末尾に追加されます。</p>



<pre class="wp-block-code javascript"><code>var new_data = { name : "tanaka", school_year : 3, test : { japanese : 85, english : 60 }, };
json_data.push(new_data);

// 末尾のデータ
console.log(json_data&#91;json_data.length - 1])
// { name : "tanaka", school_year : 3, test : { japanese : 85, english : 60 }, }</code></pre>



<h3 class="wp-block-heading"><span id="toc8">値やオブジェクトを更新する場合</span></h3>



<p>データ内の値やオブジェクトを更新する場合、<strong><span style="color:#b78d4a" class="has-inline-color">配列やオブジェクトをそのまま指定して値を設定するだけで更新が可能</span></strong>です。</p>



<pre class="wp-block-code javascript"><code>// プロパティの値を指定
json_data&#91;1].area = "Osaka";
console.log(json_data&#91;1].area) // => Osaka

json_data&#91;1].area = "Nagoya";
console.log(json_data&#91;1].area) // => Nagoya</code></pre>



<pre class="wp-block-code javascript"><code>// オブジェクトを更新
console.log(json_data&#91;2])
// { name : "hayashi", school_year : 2,  test : { japanese : 45, english : 95 }, }

var new_data = { name : "tanaka", school_year : 3, test : { japanese : 85, english : 60 }, };

// name:"hayashi"オブジェクトを"tanaka"オブジェクトに更新
json_data&#91;2] = new_data;
console.log(json_data&#91;2])
// { name : "tanaka", school_year : 3, test : { japanese : 85, english : 60 }, }</code></pre>



<h2 class="wp-block-heading"><span id="toc9">JSONデータを削除</span></h2>



<p>指定のプロパティを削除するときは、<strong><span style="color:#b78d4a" class="has-inline-color">「delete」演算子</span></strong>を使用します。</p>



<pre class="wp-block-code"><code>// 各配列の"school_year"を削除
json_data.forEach(function (value) {
    delete value.school_year;
    console.log(value)
});

// { name : "yamada", test : { japanese : 65, english : 80 }, },
// { name : "hayashi", test : { japanese : 45, english : 95 }, },
// { name : "sato", test : { jananese : 75, english : 35 }, },</code></pre>



<p>配列の要素を削除したい場合は、<strong><span style="color:#b78d4a" class="has-inline-color">削除したい要素をfalse条件</span></strong>にして<strong><span style="color:#b78d4a" class="has-inline-color">filter関数</span></strong>を使えば可能です。</p>



<h2 class="wp-block-heading"><span id="toc10">最後に</span></h2>



<p>いかがでしたでしょうか。<br>今回はJSONデータの扱い方続編ということで、<strong><span style="color:#b78d4a" class="has-inline-color">基本的な操作方法（参照・追加（更新）・削除）</span></strong>についてご紹介しました。<br>次はもう少し応用的な操作方法をご紹介できたらと思います。</p>



<p>良かったら次回も見てみてくださいね！</p>



<p>↓↓↓【JSON入門シリーズ♪】<br></p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1514/" title="【JSON入門】JSONとは？JS相互変換について(stringify/parse)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONとは？JS相互変換について(stringify/parse)</div><div class="blogcard-snippet internal-blogcard-snippet">JSON入門として、JSONの基本知識と基本的な使い方（JSONとJavaScriptオブジェクトとの相互変換）を紹介します。相互変換については、stringfy関数を使用したエンコード方法（encode）、parse関数を使用したデコード方法（decode）を分かりやすく解説♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.27</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1526/" title="【JSON入門】JSONデータの参照・追加（更新）・削除" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONデータの参照・追加（更新）・削除</div><div class="blogcard-snippet internal-blogcard-snippet">こんにちは。前回はJSONファイルとは何かというのを紹介していきました。詳しくは、こちらからご覧ください。 今回はJSONデータの扱い方の続編となります。宜しければご覧ください。 操作するデータ こちらが今回サンプルのデータです。json_...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.28</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1566/" title="【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/82-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/82-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)</div><div class="blogcard-snippet internal-blogcard-snippet">JSON入門として、JQueryを使用したJSONファイルの読み込み方を紹介します。「$.ajax()」や「$.getJSON()」を使った読み込み方法や、読み込みに失敗する場合の対処方法など分かりやすく解説♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.30</div></div></div></div></a>
</div></figure>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1526/">【JSON入門】JSONデータの参照・追加（更新）・削除</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1526/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JSON入門】JSONとは？JS相互変換について(stringify/parse)</title>
		<link>https://nyanblog2222.com/programming/javascript/1514/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1514/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 27 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[データフォーマット]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1514</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/80.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/80.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。JSONファイルについて、ご存じでしょうか。本記事はJSONファイルについてと、基本的な扱い方についてご紹介します。 目次 JSONファイルとはどういうファイルなの？JSONの良いところオブジェクトとは似て非 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1514/">【JSON入門】JSONとは？JS相互変換について(stringify/parse)</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/80.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/80.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。JSONファイルについて、ご存じでしょうか。<br>本記事は<strong><span style="color:#b78d4a" class="has-inline-color">JSONファイルについて</span></strong>と、<strong><span style="color:#b78d4a" class="has-inline-color">基本的な扱い方について</span></strong>ご紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-34" checked><label class="toc-title" for="toc-checkbox-34">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">JSONファイルとは</a><ol><li><a href="#toc2" tabindex="0">どういうファイルなの？</a></li><li><a href="#toc3" tabindex="0">JSONの良いところ</a></li><li><a href="#toc4" tabindex="0">オブジェクトとは似て非なるもの</a></li></ol></li><li><a href="#toc5" tabindex="0">JSONの基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">オブジェクトからJSONへ（エンコード encode）</a></li><li><a href="#toc7" tabindex="0">JSONからオブジェクトへ（デコード decode）</a></li></ol></li><li><a href="#toc8" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">JSONファイルとは</span></h2>



<h3 class="wp-block-heading"><span id="toc2">どういうファイルなの？</span></h3>



<p>JSONは「<strong><span style="color:#b78d4a" class="has-inline-color">JavaScript Object Notation</span></strong>」で直訳すると、「JavaScriptのオブジェクト表記法」となります。</p>



<p>つまり、<strong><span style="color:#b78d4a" class="has-inline-color">情報のやりとりができるテキストベースのデータ形式</span></strong>を表しています。<br>同じようなデータ形式で、XMLファイルが代表的な例としてよく挙げられています。</p>



<h3 class="wp-block-heading"><span id="toc3">JSONの良いところ</span></h3>



<p>JSONの特徴は主にこちらの3点を満たしており、この特徴を持つことで、<strong><span style="color:#b78d4a" class="has-inline-color">サーバ間の通信</span></strong>や<strong><span style="color:#b78d4a" class="has-inline-color">さまざまなプログラミング言語との共有</span></strong>を可能にしています。</p>



<ul class="wp-block-list"><li>テキストデータのため、<strong><span style="color:#b78d4a" class="has-inline-color">軽量</span></strong></li><li><strong><span style="color:#b78d4a" class="has-inline-color">オブジェクトのように</span></strong>扱える</li><li><strong><span style="color:#b78d4a" class="has-inline-color">単純な構造</span></strong></li></ul>



<h3 class="wp-block-heading"><span id="toc4">オブジェクトとは似て非なるもの</span></h3>



<p>先ほどのJSONの良いところでも上げましたが、相互変換が可能なため、JSONはオブジェクトのように扱うことができます。</p>



<p>しかし、JSONは<strong><span style="color:#b78d4a" class="has-inline-color">テキストデータであり、オブジェクトではありません</span></strong>。</p>



<p>こちらの例を見てください。</p>



<pre class="wp-block-code javascript"><code>// object
var obj = { name: "Taro", old: 17, tel: "000-0000-1" };

// JSON
var json = { "name": "Hanako", "old": 18, "tel": "000-0000-2" };</code></pre>



<p>テキストデータに変換する前のJSONは、連想配列に似た構造となっていますが、明確な違いがあります。<br>それはこちらです。</p>



<ul class="wp-block-list"><li>プロパティのみ含めることができ、<strong><span style="color:#b78d4a" class="has-inline-color">関数は含められない</span></strong></li><li>プロパティをダブルクォーテーション（<strong><span style="color:#b78d4a" class="has-inline-color">””</span></strong>）で括る<br>→括られた文字列のみプロパティとして使用できる</li></ul>



<p>また、注意点として、<strong><span style="color:#b78d4a" class="has-inline-color">カンマ、コロンが1つでも抜けているとJSONとして無効になる</span></strong>場合もあります。</p>



<p>この辺りを理解しておくだけでも、開発するときに違うと思います。</p>



<h2 class="wp-block-heading"><span id="toc5">JSONの基本的な使い方</span></h2>



<p>さっそく、試してみましょう。<br>今回はJSONとJavaScriptのオブジェクトとの、相互変換を行ってみます。</p>



<h3 class="wp-block-heading"><span id="toc6">オブジェクトからJSONへ（エンコード encode）</span></h3>



<p><strong><span style="color:#b78d4a" class="has-inline-color">stringfy関数</span></strong><br>・JavaScriptのオブジェクトからJSONへの変換<br>・JSONデータとして通信する前に変換することが多い</p>



<pre class="wp-block-code javascript"><code>// object
var obj = { name: "Taro", old: 17, tel: "000-0000-1" };

var json = JSON.stringify(obj);
console.log(json)</code></pre>



<h3 class="wp-block-heading"><span id="toc7">JSONからオブジェクトへ（デコード decode）</span></h3>



<p><strong><span style="color:#b78d4a" class="has-inline-color">parse関数</span></strong><br>・JSONからJavaScriptへの変換<br>ファイルから読み込み後、プログラムで使用しやすいように<strong><span style="color:#b78d4a" class="has-inline-color">デコードする必要がある</span></strong>。</p>



<p>注意する点として、jsonはテキストベースなので全体をシングルクォートで括っています。</p>



<pre class="wp-block-code javascript"><code>// JSON
var json = '{ "name": "Hanako", "old": 18, "tel": "000-0000-2" }';

var obj = JSON.parse(json);
console.log(obj)</code></pre>



<h2 class="wp-block-heading"><span id="toc8">まとめ</span></h2>



<p>いかがでしたでしょうか。<br>今回はJSONの基本的な知識と、基本的な扱い方について、ご紹介しました。<br>次回はJSON登録や更新などについて、ご紹介していきます。</p>



<p>良かったら次回も見てみてくださいね！</p>



<p>↓↓↓【JSON入門シリーズ♪】</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1514/" title="【JSON入門】JSONとは？JS相互変換について(stringify/parse)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/80-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/80-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONとは？JS相互変換について(stringify/parse)</div><div class="blogcard-snippet internal-blogcard-snippet">JSON入門として、JSONの基本知識と基本的な使い方（JSONとJavaScriptオブジェクトとの相互変換）を紹介します。相互変換については、stringfy関数を使用したエンコード方法（encode）、parse関数を使用したデコード方法（decode）を分かりやすく解説♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.27</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1526/" title="【JSON入門】JSONデータの参照・追加（更新）・削除" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/81-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/81-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JSONデータの参照・追加（更新）・削除</div><div class="blogcard-snippet internal-blogcard-snippet">こんにちは。前回はJSONファイルとは何かというのを紹介していきました。詳しくは、こちらからご覧ください。 今回はJSONデータの扱い方の続編となります。宜しければご覧ください。 操作するデータ こちらが今回サンプルのデータです。json_...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.28</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1566/" title="【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/82-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/82-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/82-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JSON入門】JQueryでのJSON読み込み方法(ajax/getJSON)</div><div class="blogcard-snippet internal-blogcard-snippet">JSON入門として、JQueryを使用したJSONファイルの読み込み方を紹介します。「$.ajax()」や「$.getJSON()」を使った読み込み方法や、読み込みに失敗する場合の対処方法など分かりやすく解説♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.30</div></div></div></div></a>
</div></figure>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1514/">【JSON入門】JSONとは？JS相互変換について(stringify/parse)</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1514/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】Canvasで複数の画像を1つのimgタグで順番に出力してみよう【HTML5】</title>
		<link>https://nyanblog2222.com/programming/javascript/1506/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1506/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Thu, 25 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[img要素]]></category>
		<category><![CDATA[画像]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1506</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/92.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/92.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/92-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/92-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/92-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。今回はJavaScriptでcanvas要素を使って、複数の画像を1つのimg要素へ出力する方法をご紹介します。 同じフォルダ構成＋ファイル名の画像さえあれば、コピペで再現できます！ 目次 HTMLCSSJa [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1506/">【JavaScript】Canvasで複数の画像を1つのimgタグで順番に出力してみよう【HTML5】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/92.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/92.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/92-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/92-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/92-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。今回はJavaScriptでcanvas要素を使って、複数の画像を1つのimg要素へ出力する方法をご紹介します。</p>



<p>同じフォルダ構成＋ファイル名の画像さえあれば、コピペで再現できます！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-36" checked><label class="toc-title" for="toc-checkbox-36">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">HTML</a></li><li><a href="#toc2" tabindex="0">CSS</a></li><li><a href="#toc3" tabindex="0">JavaScript</a></li><li><a href="#toc4" tabindex="0">デモ</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">HTML</span></h2>



<p>今回のHTMLは至ってシンプルです。<br><strong><span style="color:#b78d4a" class="has-inline-color">img要素を作成する親div</span></strong>を記述しています。</p>



<pre class="wp-block-code html"><code>&lt;body>
    &lt;div id="result">&lt;/div>
&lt;/body></code></pre>



<h2 class="wp-block-heading"><span id="toc2">CSS</span></h2>



<p>今回はCSSは使用していないので、不要です。<br>※ その代わりJavaScriptがしっかり目です。</p>



<h2 class="wp-block-heading"><span id="toc3">JavaScript</span></h2>



<p>JavaScriptはこちらです。<br>今回はJQueryは使っていません。</p>



<p>要所要所で、解説用にコメントを記述してみました。</p>



<pre class="wp-block-code javascript"><code>window.onload = function () {
    // 色々宣言・初期化
    var canvas = document.createElement("canvas");
    canvas.width = 0;
    canvas.height = 0;
    var images = &#91;];
    var srcs = &#91;
        'img/1.jpg',
        'img/2.jpg',
        'img/3.jpg',
        'img/4.jpg',
    ];
    var loadCount = 0;

    // Canvas上に画像を表示
    for (var i = 0; i &lt; srcs.length; i++) {
        // Imageのインスタンスを生成し、それぞれの画像を設定
        images&#91;i] = new Image();
        images&#91;i].src = srcs&#91;i];

        // 画像の読み込みが終わったら
        images&#91;i].onload = function () {
            // カウントを取る
            loadCount++;

            // 画像全てloadが終わったら
            if (loadCount === images.length) {
                // ロード後の処理
                loadProcess(images, canvas);
            }
        };
    }
};

// ロード後の処理
function loadProcess(images, canvas) {
    // 画像それぞれのサイズを計算して、canvasのサイズを設定
    setCanvasSize(images, canvas);

    // canvasをクリアにする
    let ctx = canvas.getContext('2d');
    ctx.clearRect(0, 0, canvas.width, canvas.height);

    // カンバスに画像を描画
    drowImage(images, ctx);

    // canvasを画像に変換
    canvasToImage(canvas);
}

// カンバスサイズを設定
function setCanvasSize(images, canvas) {
    for (let i = 0; i &lt; images.length; i++) {
        // 横幅は一番大きい画像に設定
        if (canvas.width &lt; images&#91;i].naturalWidth) {
            canvas.width = images&#91;i].naturalWidth;
        }
        // 高さはプラスしていく
        canvas.height += images&#91;i].naturalHeight;
    }
}

// カンバスに画像を描画
function drowImage(images, ctx) {
    var set_y = 0;
    for (let i = 0; i &lt; images.length; i++) {
        ctx.drawImage(images&#91;i], 0, set_y);
        // 前の画像分、高さをずらして表示させるため、set_yに現在の画像の高さを設定
        set_y += images&#91;i].naturalHeight;
    }
}

// canvasからImgに変換
function canvasToImage(canvas) {
    // img要素を作成
    var outputImg = document.createElement('img');
    // canvasを画像に変換
    outputImg.src = canvas.toDataURL('image/png');
    // 変換したimg要素をdiv要素の中に追加
    document.getElementById('result').appendChild(outputImg);
}</code></pre>



<h2 class="wp-block-heading"><span id="toc4">デモ</span></h2>



<p><strong><a class="link" href="https://nyanblog2222.com/demo/canvas_img/" target="_blank">デモページはこちら</a></strong>です。<br>サイズの取得を確認できるよう、さまざまな画像を使ってみました。</p>



<h2 class="wp-block-heading"><span id="toc5">まとめ</span></h2>



<p>いかがでしたでしょうか。<br>このようなcanvasの使い方もできるんですねぇ。。。<br>色んな描画の使い方ができるので、もっと！もっと！とできるようになりたいです。<br>（ちょっとしたミニゲームっぽいのもそろそろ作ってみたい。。。）</p>



<p>今回に限った話ではないですが、実務でC#をやっておきながら、JavaScriptでオブジェクト指向の書き方が全然できておらず、猛勉強中です。</p>



<p>可読性も上げたいと思っているので、近いうちに記事にできるようしっかり勉強していきます。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1506/">【JavaScript】Canvasで複数の画像を1つのimgタグで順番に出力してみよう【HTML5】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1506/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】アナログ時計の作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/1382/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1382/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Wed, 24 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Dateオブジェクト]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1382</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/64.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/64.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。先日JavaScriptでカウントダウンタイマーを作成してみました！詳しくはこちらをご欄ください。 今回はDateオブジェクトを使用して、アナログ時計を作成してみました。良かったら試してみてください。 目次  [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1382/">【JavaScript】アナログ時計の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/64.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/64.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/64-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。先日JavaScriptでカウントダウンタイマーを作成してみました！<br>詳しくはこちらをご欄ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog-にゃんぶろぐ wp-block-embed-nyanblog-にゃんぶろぐ"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/javascript/1200/" title="【JavaScript】カウントダウンタイマーの作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/69-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/69-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/69-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JavaScript】カウントダウンタイマーの作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）でカウントダウンタイマーを作成しました。サンプル付きでデモもあるので分かりやすくなっています。コピペでも良いのでよかったら試してみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.08.13</div></div></div></div></a>
</div></figure>



<p>今回はDateオブジェクトを使用して、アナログ時計を作成してみました。<br>良かったら試してみてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-38" checked><label class="toc-title" for="toc-checkbox-38">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">HTML</a></li><li><a href="#toc2" tabindex="0">CSS</a></li><li><a href="#toc3" tabindex="0">JavaScript</a></li><li><a href="#toc4" tabindex="0">デモ</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">HTML</span></h2>



<p>まずは、HTMLからです。<br>それぞれの役割はこちらです。</p>



<p>wrapperクラス：ラッパー<br>clockクラス：時計全体<br>scaleクラス：時計のメモリの枠<br>　※ JavaScriptでそれぞれのメモリを設定します。<br>hourクラス：時針<br>minクラス：分針<br>secクラス：秒針</p>



<pre class="wp-block-code html"><code>&lt;body&gt;
    &lt;div class="wrapper"&gt;
        &lt;div class="clock"&gt;
            &lt;div class="scale"&gt;&lt;/div&gt;
            &lt;div class="hour line"&gt;&lt;/div&gt;
            &lt;div class="min line"&gt;&lt;/div&gt;
            &lt;div class="sec line"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/body&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc2">CSS</span></h2>



<p>こちらがスタイルの設定です。</p>



<pre class="wp-block-code css"><code>@<strong>charset</strong> "utf-8";

.wrapper {
    width: 100%;
    padding: 40px;
    box-sizing: border-box;

    display: flex;
    align-items: center;
    flex-direction: column;
}

.clock {
    background-color: rgba(255, 243, 217, 0.2);
    border: 3px solid #C6A35B;
    width: 400px;
    height: 400px;
    position: relative;
    border-radius: 50%;
}

.clock::after {
    width: 16px;
    height: 16px;
    background: #C6A35B;
    content: "";

    position: absolute;
    top: calc(50% - 8px);
    left: calc(50% - 8px);
    border-radius: 50%;
}

.line {
    position: absolute;
    transform-origin: bottom;
}

.hour {
    width: 8px;
    height: 140px;
    background: #C6A35B;
    top: calc(50% - 140px);
    left: calc(50% - 4px);
}

.min {
    width: 4px;
    height: 180px;
    background: #C6A35B;
    top: calc(50% - 180px);
    left: calc(50% - 2px);
}

.sec {
    width: 1px;
    height: 180px;
    background: #D4BB92;
    top: calc(50% - 180px);
    left: calc(50% - 0.5px);
}

.scale {
    position: relative;
    width: 100%;
    height: 100%;
}

.scale &gt; <strong>div</strong> {
    position: absolute;
    top: 0;
    left: calc(50% - 2px);
    width: 4px;
    height: 50%;
    transform-origin: bottom;
}

.scale &gt; <strong>div</strong>::after {
    position: absolute;
    top: 0;
    content: "";
    width: 4px;
    height: 12px;
    background-color: #C6A35B;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc3">JavaScript</span></h2>



<p>JavaScriptで針の動きと、時計のメモリを設定しています。</p>



<p>・setIntervalは1秒ごとなので1000でも良いですが、起動後に1秒待つ必要があるため、100で設定しています。<br>・針やメモリはstyle.transformでrotateを指定して角度を設定しています。<br>・window.onloadの関数内では、scaleクラスの要素の最後にdiv要素を追加しています。</p>



<pre class="wp-block-code javascript"><code>setInterval(<strong>function</strong> () {
    <em>// 時間を取得</em>
    <strong>var</strong> now = <strong>new</strong> Date();

    <em>// 針の角度</em>
    <strong>var</strong> deg_h = now.getHours() * (360 / 12) + now.getMinutes() * (360 / 12 / 60);
    <strong>var</strong> deg_m = now.getMinutes() * (360 / 60);
    <strong>var</strong> deg_s = now.getSeconds() * (360 / 60);

    <em>// それぞれの針に角度を設定</em>
    document.querySelector(".hour").style.transform = `rotate(${deg_h}deg)`;
    document.querySelector(".min").style.transform = `rotate(${deg_m}deg)`;
    document.querySelector(".sec").style.transform = `rotate(${deg_s}deg)`;
}, 100);

window.onload = <strong>function</strong> () {
    <em>// メモリを追加</em>
    <strong>for</strong> (<strong>let</strong> i = 1; i &lt;= 12; i++) {
        <em>// scaleクラスの要素の最後にdiv要素を追加</em>
        <strong>let</strong> scaleElem = document.querySelector(".scale");
        <strong>let</strong> addElem = document.createElement("div");
        scaleElem.appendChild(addElem);

        <em>// 角度をつける</em>
        document.querySelector(".scale div:nth-child(" + i + ")").style.transform = `rotate(${i * 30}deg)`;
    }
}</code></pre>



<h2 class="wp-block-heading"><span id="toc4">デモ</span></h2>



<p><strong><a class="link" href="https://nyanblog2222.com/demo/analog_clock/" target="_blank">デモページはこちら</a></strong>です。<br>実際の時刻に合わせて時計が動いているのが分かります。</p>



<h2 class="wp-block-heading"><span id="toc5">まとめ</span></h2>



<p>いかがでしたでしょうか。<br>今回はJavaScriptでアナログ時計を作成してみました。</p>



<p>Dateオブジェクト以外にも、CSSのtransformの使い方やJavaScriptで要素内に要素を追加する方法も中で行っているので、ぜひ試してみてください。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1382/">【JavaScript】アナログ時計の作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1382/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】簡単に文字をカーブ状に配置するプラグイン【Arctext.js】</title>
		<link>https://nyanblog2222.com/programming/javascript/1233/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1233/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Fri, 12 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Arctext]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[カーブ]]></category>
		<category><![CDATA[円形]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1233</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/79.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/79.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/79-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/79-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/79-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />文字をカーブさせるためには、CSSやJavaScriptで一から作成するのはかなり難しいです。今回は、JavaScriptのプラグインを使って、簡単に文字をカーブ状に配置する方法をご紹介します。 目次 プラグインの設定A [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1233/">【JavaScript】簡単に文字をカーブ状に配置するプラグイン【Arctext.js】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/79.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/79.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/79-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/79-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/79-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>文字をカーブさせるためには、CSSやJavaScriptで一から作成するのはかなり難しいです。<br>今回は、JavaScriptのプラグインを使って、簡単に文字をカーブ状に配置する方法をご紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-40" checked><label class="toc-title" for="toc-checkbox-40">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">プラグインの設定</a><ol><li><a href="#toc2" tabindex="0">Arctext.jsのファイルをダウンロード</a></li><li><a href="#toc3" tabindex="0">script参照の設定</a></li></ol></li><li><a href="#toc4" tabindex="0">HTML</a></li><li><a href="#toc5" tabindex="0">CSS</a></li><li><a href="#toc6" tabindex="0">JavaScript</a></li><li><a href="#toc7" tabindex="0">Arctext.jsのオプション</a></li><li><a href="#toc8" tabindex="0">デモ</a></li><li><a href="#toc9" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">プラグインの設定</span></h2>



<h3 class="wp-block-heading"><span id="toc2">Arctext.jsのファイルをダウンロード</span></h3>



<p>こちらのページ<strong><a rel="noopener" class="link" href="http://tympanus.net/codrops/2012/01/24/arctext-js-curving-text-with-css3-and-jquery/" target="_blank">[Arctext.js – Curving Text with CSS3 and jQuery]</a></strong>のページから<strong><span style="color:#b78d4a" class="has-inline-color">「Download Source」</span></strong>をクリックしてダウンロードすることができます。<br>このプラグインはCDNには設置されていないので、ダウンロードしてファイルを配置してください。</p>



<p>また、このプラグインはJqueryを使用していますので、CDN設置のアドレスを設定するか、事前にダウンロードして用意してください。</p>



<h3 class="wp-block-heading"><span id="toc3">script参照の設定</span></h3>



<p>先ほどダウンロードしたファイルをhtmlでscript要素で参照設定します。</p>



<pre class="wp-block-code"><code>&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js">&lt;/script>
&lt;script src="js/jquery.arctext.js">&lt;/script>
&lt;script src="js/script.js">&lt;/script></code></pre>



<h2 class="wp-block-heading"><span id="toc4">HTML</span></h2>



<p>HTMLでカーブ状にしたい要素に対してidを設定していきます。<br>具体的な設定はJavaScriptで設定します。</p>



<pre class="wp-block-code"><code>&lt;body>
    &lt;p id="sample1">nyanblog javascript&lt;/p>
    &lt;p id="sample2">簡単にカーブにできるよ&lt;/p>
    &lt;p id="sample3">よかったら試してみてね&lt;/p>
    &lt;p id="sample4">文字をまっすぐにできるよ&lt;/p>
&lt;/body></code></pre>



<h2 class="wp-block-heading"><span id="toc5">CSS</span></h2>



<p>CSSで少しスタイルも編集しています。</p>



<pre class="wp-block-code"><code>p {
    text-align: center;
    color: #D09B4A;
    margin: 5rem auto;
    font-weight: bold;
    font-size: 1.6rem;
}

#sample3 {
    margin-top: 16rem;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc6">JavaScript</span></h2>



<p>HTMLで設定したh1~h6要素やp要素に設定したidに対して、arctext関数を使って文字列をどのようにカーブ状にするか、設定します。</p>



<p>この設定は「script.js」ファイルに記述しています。</p>



<pre class="wp-block-code"><code>$(function() {
    $("#sample1").arctext({
        radius : 200,
    });
    
    $("#sample2").arctext({
        radius : 150,
    });
    
    $("#sample3").arctext({
        radius : 150,
        dir: -1,
    });
    
    $("#sample4").arctext({
        radius : 200,
        rotate: false,
    });
});</code></pre>



<h2 class="wp-block-heading"><span id="toc7">Arctext.jsのオプション</span></h2>



<p>オプションを設定について、こちらの表を参考に設定してみてください。</p>



<figure class="wp-block-table">
    <table>
        <tbody>
            <tr>
                <th class="text-aline-center">オプション</th>
                <th class="text-aline-center">説明</th>
            </tr>
            <tr>
                <th>radius</th>
                <td>サークルの半径（デフォルト：0）</td>
            </tr>
            <tr>
                <th>dir</th>
                <td>方向：1:下にカーブ、-1:上にカーブ（デフォルト：1）</td>
            </tr>
            <tr>
                <th>rotate</th>
                <td>true：文字が中央を向く、false：文字がまっすぐのまま。（デフォルト：true）</td>
            </tr>
            <tr>
                <th>fitText</th>
                <td>[fitText]プラグインを使用する場合、true（デフォルト：false）</td>
            </tr>
        </tbody>
    </table>
</figure>



<h2 class="wp-block-heading"><span id="toc8">デモ</span></h2>



<p>ソースコードに記述している<strong><a class="link" href="https://nyanblog2222.com/demo/arctext/" target="_blank">「デモページはこちら」</a></strong>です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="325" height="502" src="https://nyanblog2222.com/wp-content/uploads/2020/06/c593493fb54c5efe411e6adc3316c991.png" alt="デモページのイメージ" class="wp-image-1262" srcset="https://nyanblog2222.com/wp-content/uploads/2020/06/c593493fb54c5efe411e6adc3316c991.png 325w, https://nyanblog2222.com/wp-content/uploads/2020/06/c593493fb54c5efe411e6adc3316c991-194x300.png 194w" sizes="auto, (max-width: 325px) 100vw, 325px" /></figure>



<h2 class="wp-block-heading"><span id="toc9">まとめ</span></h2>



<p>いかがでしたでしょうか。<br>今回はJavaScriptのプラグインで簡単に文字をカーブ状に表現することができました。<br>これを使うとロゴも簡単にできちゃいそうですね！</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1233/">【JavaScript】簡単に文字をカーブ状に配置するプラグイン【Arctext.js】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1233/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Bingo Game】JavaScriptでビンゴゲームの作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/1194/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1194/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Tue, 09 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[ビンゴ]]></category>
		<category><![CDATA[ランダム]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1194</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/63.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/63.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。前回はJavaScriptを使って、ビンゴカードを作成してみました。 今回はビンゴマシンを作成してみましょう！ 目次 HTMLCSSJavaScriptデモまとめ HTML まずはHTMLを作成しています。d [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1194/">【Bingo Game】JavaScriptでビンゴゲームの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/63.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/63.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。前回はJavaScriptを使って、ビンゴカードを作成してみました。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog-にゃんぶろぐ wp-block-embed-nyanblog-にゃんぶろぐ"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1016/" title="【Bingo Game】JavaScriptでビンゴカードの作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/62-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/62-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Bingo Game】JavaScriptでビンゴカードの作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）を使ってビンゴカードを作ってみました。作成にはJqueryを使用しています。コピペで使えるソースコードや、実際のビンゴカードのサンプル付きなので、是非動かして試してみてくださいね♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.31</div></div></div></div></a>
</div></figure>



<p>今回はビンゴマシンを作成してみましょう！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-42" checked><label class="toc-title" for="toc-checkbox-42">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">HTML</a></li><li><a href="#toc2" tabindex="0">CSS</a></li><li><a href="#toc3" tabindex="0">JavaScript</a></li><li><a href="#toc4" tabindex="0">デモ</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">HTML</span></h2>



<p>まずはHTMLを作成しています。<br>divのwrapperで全体的に囲み、<br>・ルーレット div要素<br>・ルーレットの開始・停止ボタン div要素<br>・ルーレット停止後、出た数字を一覧で追加する枠 ul要素<br>で作成しています。</p>



<pre class="wp-block-code html"><code>// 全体的な枠
&lt;div class="wrapper"&gt;
    // ルーレット
    &lt;div id="result" class="result centering"&gt;&lt;/div&gt;
    // ルーレット開始、停止のボタン
    &lt;div class="wrapper-button"&gt;
        &lt;button id="button" class="button"&gt;START&lt;/button&gt;
    &lt;/div&gt;
    // ルーレットを停止後、出た数字を一覧で表示
    &lt;ul id="number" class="number"&gt;&lt;/ul&gt;
&lt;/div&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc2">CSS</span></h2>



<p>こちらがCSSです。<br>HTMLで設定した要素に対して、スタイルを設定していきます。<br>この辺りはコピペで好きなところを調整してもいいと思います！</p>



<pre class="wp-block-code css"><code>@charset "utf-8";

body {
    font-family: arial, sans-serif;
}

.wrapper {
    margin: 0 auto;
    text-align: center;
}

.centering {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}

/* ルーレット */
.result {
    border: solid 1px #B78D4A;
    border-radius: 50%;
    font-size: 70px;
    
    margin-bottom: 20px;
    width: 130px;
    height: 130px;
}

/* 出た数字の一覧 */
.number {
    color: #B78D4A;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin: 0 auto;
    list-style: none;
    width: 80%;
    padding: 0;
}

.number li {
    background-color: #B78D4A;
    color: #fff;
    border-radius: 10px;
    height: 40px;
    margin: 4px;
    width: 40px;
}

/* ボタン */
.wrapper-button {
    padding: 20px 0;
}

.button {
    font-size: 30px;
    display: inline-block;
    padding: .8rem 1.6rem;
    border: none;
    border-radius: 25px;
    color: #FFF;
    background-image: linear-gradient(45deg, #B78D4A 0%, #D4BB92 100%);
}

.button:hover {
    background-image: linear-gradient(45deg, #D4BB92 0%, #FDE0A5 100%);
}</code></pre>



<h2 class="wp-block-heading"><span id="toc3">JavaScript</span></h2>



<p>Jqueryを使っています。</p>



<p>まずは、ビンゴの数字一覧を作成します。この一覧を使ってルーレットを回します。</p>



<p>次にSTARTとSTOPのクリックイベントでルーレットを回したり、結果を表示させたりします。<br>詳しくはコメントを記載していますので、確認してください。</p>



<pre class="wp-block-code javascript"><code>$(function () {

    // 1~75まで、bingoの数字一覧を作成
    var max = 75;
    var bingo = &#91;];
    for (var i = 1; i &lt;= max; i++) {
        bingo.push(i);
    }

    var timer;
    var random;
    // START・STOPボタンクリックのイベント
    $("#button").on("click", function () {
        // START
        if ($(this).text() == "START") {
            // ボタンのテキストを"STOP"に変更
            $(this).text("STOP");

            // ルーレットタイマーを設定
            timer = setInterval(function () {
                random = Math.floor(Math.random() * bingo.length);
                $("#result").text(bingo&#91;random]);
            }, 10);
        // STOP
        } else {
            // ボタンのテキストを"START"に変更
            $(this).text("START");

            // ルーレットタイマーを停止
            clearInterval(timer);

            // 停止時の数字を結果に反映
            var result = bingo&#91;random];
            // 一覧から削除（次のルーレットに表示させないため）
            bingo.splice(random, 1);

            // 数字一覧に追加
            $("#number").append($("&lt;li&gt;").text(result));
            $("#number li").addClass("centering");
        }
    });
});</code></pre>



<h2 class="wp-block-heading"><span id="toc4">デモ</span></h2>



<p><strong><a class="link" href="https://nyanblog2222.com/demo/bingo2/" target="_blank">こちらがデモページ</a></strong>です。<br>STARTボタンをクリックしてルーレットが開始、一定時間後にSTOPボタンをクリックすることで、数字を止めることができます。</p>



<p>ボタンの下に今まで出た数字が一覧で表示されるので、カードを再チェックするときに活用することができます。</p>



<h2 class="wp-block-heading"><span id="toc5">まとめ</span></h2>



<p>前回のビンゴカードと合わせることで、<br>ビンゴゲームをすることができます。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog-にゃんぶろぐ wp-block-embed-nyanblog-にゃんぶろぐ"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/javascript/1016/" title="【Bingo Game】JavaScriptでビンゴカードの作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/62-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/62-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Bingo Game】JavaScriptでビンゴカードの作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JavaScript（JS）を使ってビンゴカードを作ってみました。作成にはJqueryを使用しています。コピペで使えるソースコードや、実際のビンゴカードのサンプル付きなので、是非動かして試してみてくださいね♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.31</div></div></div></div></a>
</div></figure>



<p>これならカードをビンゴゲーム一式を購入する必要もないので、簡単に遊ぶことができます。<br>良かったら遊んでみてくださいね！</p>



<p>良かったら他の記事も見てみてくださいね！</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1194/">【Bingo Game】JavaScriptでビンゴゲームの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1194/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>＜input type=&#8221;file&#8221;＞で読み込んだ画像を表示させよう【JavaScript】</title>
		<link>https://nyanblog2222.com/programming/javascript/1132/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1132/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Fri, 05 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[input要素]]></category>
		<category><![CDATA[画像表示]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1132</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/91.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/91.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/91-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/91-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/91-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />前回は、＜input type = &#8220;file&#8221;＞で選択するボタンの装飾について説明しました。詳しくは、こちらをご覧ください。 今回はinput要素で読み込んだ画像を表示させてみようと思います。そ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1132/">＜input type=&#8221;file&#8221;＞で読み込んだ画像を表示させよう【JavaScript】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/91.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/91.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/91-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/91-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/91-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>前回は、＜input type = &#8220;file&#8221;＞で選択するボタンの装飾について説明しました。<br>詳しくは、こちらをご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/html-css/1102/" title="ファイルを選択するボタンの画像やスタイルを設定する方法＜input type=&quot;file&quot;＞" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/90-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/90-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">ファイルを選択するボタンの画像やスタイルを設定する方法＜input type="file"＞</div><div class="blogcard-snippet internal-blogcard-snippet">input要素において、「確認する」ボタンを でsrc属性に画像のパスを設定すると、「確認する」ボタンを画像に設定することができます。しかし、ファイルを選択するinput要素では、既にtype = &quot;file&quot;が設定されているため、少し工夫が必要になります！今回は選択ボタンの画像やスタイルの変更をいく...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.03</div></div></div></div></a>
</div></figure>



<p><br>今回はinput要素で読み込んだ画像を表示させてみようと思います。<br>それでは、img要素とdiv要素それぞれのパターンでみていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-44" checked><label class="toc-title" for="toc-checkbox-44">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【サンプル1】img要素に出力</a></li><li><a href="#toc2" tabindex="0">【サンプル2】div要素に出力</a></li><li><a href="#toc3" tabindex="0">デモ</a></li><li><a href="#toc4" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【サンプル1】img要素に出力</span></h2>



<p>まずは、img要素に出力してみます。<br>input要素、type=&#8221;file&#8221;では、<strong><span style="color:#b78d4a" class="has-inline-color">ファイルを選択後、onchangeのイベントが呼ばれます</span></strong>。<br>JavaScriptでは、<strong><span style="color:#b78d4a" class="has-inline-color">on(&#8220;change&#8221;, function())関数</span></strong>です。</p>



<p>HTMLではinput要素とimg要素を宣言します。</p>



<pre class="wp-block-code html"><code>&lt;input type="file" id="input1"/&gt;
&lt;img id="sample1"&gt;</code></pre>



<p>JavaScriptに1～4の内容を記述します。</p>



<p>1. ファイル選択後に呼ばれるイベントを記述<br>2. イベント内で画像ファイルの読み込みクラスを設定<br>3. 読み込みクラスの準備が終わったらimg要素のsrc属性に画像ファイルの情報を設定<br>4. 読み込んだ画像ファイルをURLに変換</p>



<pre class="wp-block-code javascript"><code>// 1. ファイル選択後に呼ばれるイベント
$("#input1").on("change", function (e) {

    // 2. 画像ファイルの読み込みクラス
    var reader = new FileReader();

    // 3. 準備が終わったら、id=sample1のsrc属性に選択した画像ファイルの情報を設定
    reader.onload = function (e) {
        $("#sample1").attr("src", e.target.result);
    }

    // 4. 読み込んだ画像ファイルをURLに変換
    reader.readAsDataURL(e.target.files&#91;0]);
});</code></pre>



<h2 class="wp-block-heading"><span id="toc2">【サンプル2】div要素に出力</span></h2>



<p>次はdiv要素に画像ファイルを出力してみます。<br>JavaScriptの記述方法も変えてみました。</p>



<p>先ほどと異なり、input要素の<strong><span style="color:#b78d4a" class="has-inline-color">onchange属性にOutputImage関数を設定</span></strong>しています。</p>



<pre class="wp-block-code html"><code>&lt;input type="file" id="input2" onchange="OutputImage(this);"/>
&lt;div id="sample2">&lt;/div></code></pre>



<p>JavaScriptではサンプル1と同様、ファイル読み込みクラスを使用して、画像を表示させます。<br>サンプル1と異なるのはImageクラスを使って、<strong><span style="color:#b78d4a" class="has-inline-color">heightとwidthの設定を追加</span></strong>しています。</p>



<p>1. input要素のonchange属性に関数を設定<br>2. イベント内で画像ファイルの読み込みクラスを設定<br>3. 読み込みクラスの準備が終わったら画像の情報を設定<br>4. Imageクラスに読み込んだ画像の情報を設定し、div要素に読み込んだ画像の縦・横のサイズを設定<br>5. backgroundスタイルを設定<br>6. 読み込んだ画像ファイルをURLに変換</p>



<pre class="wp-block-code javascript"><code>// 1. onchange属性に設定した関数
function OutputImage(target)
{
    // 2. ファイル読み込みクラス
    var reader = new FileReader();

    // 3. 読み込みクラスの準備が終わった後、画像の情報を設定
    reader.onload = function () {
        $sample2 = $("#sample2");

        // 4. Imageクラスを使ってdiv要素に画像のheightとwidthのサイズを設定
        img = new Image();
        img.src = this.result;
        img.onload = function() {
            $sample2.css("width", img.naturalWidth);
            $sample2.css("height", img.naturalHeight);
        }
        // 5. backgroundスタイルを設定
        $sample2.css("background", "url(" + this.result + ") center center / contain no-repeat");
    }
    // 6. 読み込んだ画像ファイルをURLに変換
    reader.readAsDataURL(target.files&#91;0]);
}</code></pre>



<h2 class="wp-block-heading"><span id="toc3">デモ</span></h2>



<p>こちらがサンプル1とサンプル2のデモです。<br>内容は一緒ですが、出力方法や要素がimgかdivであることが異なります。</p>



<style type="text/css">
        #demo > div {
margin: 1rem;
}

        #demo p {
margin: 0;
}

#demo input {
height: auto;
    padding: 0;
border: none;
}
    </style>

<div id="demo">
           
        <div>
            <p>サンプル1</p>
            <input type="file" id="input1">
            <img id="sample1">
        </div>
        
        <div>
            <p>サンプル2</p>
            <input type="file" id="input2" onchange="OutputImage(this);">
            <div id="sample2"></div>
        </div>
        
        </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script type="text/javascript">
        $("#input1").on("change", function (e) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $("#sample1").attr("src", e.target.result);
            }
            reader.readAsDataURL(e.target.files[0]);
        });
        
        function OutputImage(target)
        {
            var reader = new FileReader();
            reader.onload = function () {
                $sample2 = $("#sample2");
                img = new Image();
                img.src = this.result;
                img.onload = function() {
                    $sample2.css("width", img.naturalWidth);
                    $sample2.css("height", img.naturalHeight);
                }
                $sample2.css("background", "url(" + this.result + ") center center / contain no-repeat");
            }
            reader.readAsDataURL(target.files[0]);
        }
    </script>



<h2 class="wp-block-heading"><span id="toc4">まとめ</span></h2>



<p>今回はinput type=file要素で取得した画像ファイルを出力する方法を説明していきました。<br>divに関して、今回例で試してみただけなので、別の要素でも試してみてください。<br>次回は複数ファイルを読み込んで出力してみましょう。</p>



<p>本記事をご覧いただきありがとうございました。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1132/">＜input type=&#8221;file&#8221;＞で読み込んだ画像を表示させよう【JavaScript】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1132/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ファイルを選択するボタンの画像やスタイルを設定する方法＜input type=&#8221;file&#8221;＞</title>
		<link>https://nyanblog2222.com/programming/html-css/1102/</link>
					<comments>https://nyanblog2222.com/programming/html-css/1102/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Wed, 03 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[input要素]]></category>
		<category><![CDATA[ファイルを選択]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1102</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/90.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/90.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />input要素において、「確認する」ボタンを ＜input type = &#8220;image&#8221;＞ でsrc属性に画像のパスを設定すると、「確認する」ボタンを画像に設定することができます。 しかし、ファイ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/html-css/1102/">ファイルを選択するボタンの画像やスタイルを設定する方法＜input type=&#8221;file&#8221;＞</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/90.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/90.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/90-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>input要素において、「確認する」ボタンを ＜input type = &#8220;image&#8221;＞ でsrc属性に画像のパスを設定すると、「確認する」ボタンを画像に設定することができます。</p>



<p>しかし、ファイルを選択するinput要素では、既にtype = &#8220;file&#8221;が設定されているため、少し工夫が必要になります！<br>今回は選択ボタンの画像やスタイルの変更をいくつかの方法でご紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-46" checked><label class="toc-title" for="toc-checkbox-46">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【サンプル1】ボタンを画像に設定する</a></li><li><a href="#toc2" tabindex="0">ボタンのスタイルを変更</a><ol><li><a href="#toc3" tabindex="0">【サンプル2】&lt;label&gt;で囲んでスタイルを設定</a></li><li><a href="#toc4" tabindex="0">【サンプル3】CSSとJavaScriptを使ってスタイルを変更</a></li></ol></li><li><a href="#toc5" tabindex="0">デモ</a></li><li><a href="#toc6" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【サンプル1】ボタンを画像に設定する</span></h2>



<p>ボタンを画像にする方法について、<br>HTMLでは、<strong><span style="color:#b78d4a" class="has-inline-color">input要素をlabel要素</span></strong>で囲みます。</p>



<pre class="wp-block-code html"><code>&lt;label id="sample1"&gt;
   &lt;input type="file"/&gt;
&lt;/label&gt;</code></pre>



<p>CSSでlabel要素に画像を設定します。<br>他にもサイズやポインタなど、スタイルを変更しておきましょう。</p>



<p>デフォルトでinput要素はボタンが出力されるので、display: none; で表示を消しておきます。</p>



<p>また、hoverの疑似クラスで別の画像を設定しておくと、少し動きが出ますね。</p>



<pre class="wp-block-code css"><code><strong>#sample1</strong> {
    // サイズを設定
    height: 54px;
    width: 150px;

    // ボタンにする画像を設定
    background: url(../img/sample1.png) center center / contain no-repeat;

    // インラインボックスに設定
    display: inline-block;
    // マウスカーソルを当てた時、ポインタに設定
    cursor: pointer;
}

<strong>#sample1</strong>:hover {
    background: url(../img/sample1_hover.png) center center / contain no-repeat;
}

<strong>#sample1</strong> <strong>input</strong>{
    // デフォルトのinputは出力なし
    display: none;
}</code></pre>



<p>また、今回はサンプルなので簡単な画像なのですが、<br>この程度の画像の動きであればスタイルでも実現可能です。</p>



<h2 class="wp-block-heading"><span id="toc2">ボタンのスタイルを変更</span></h2>



<h3 class="wp-block-heading"><span id="toc3">【サンプル2】&lt;label&gt;で囲んでスタイルを設定</span></h3>



<p>先ほどの画像の設定と同様にinput要素をlabel要素で囲みます。</p>



<pre class="wp-block-code html"><code>&lt;label id="sample2">
   &lt;input type="file"/>
&lt;/label></code></pre>



<p>続いて、今度はlabel要素をCSSで設定していきます。</p>



<pre class="wp-block-code css"><code>#sample2 {
  position: relative;
  display: inline-block;
  padding: 0.25em 0.5em;
  text-decoration: none;
  background: #00BCD4;/*背景色*/
  color: #00BCD4;/*=背景色*/
  box-shadow: inset 0 2px 0 rgba(255,255,255,0.2);
  border-bottom: solid 2px #118e9e;
  border-radius: 4px;
  font-weight: bold;
  text-shadow: -1px -1px rgba(255, 255, 255, 0.44), 1px 1px rgba(0, 0, 0, 0.38);
  cursor: pointer;
}

#sample2:active {
  /*押したとき*/
  border-bottom: solid 2px #00BCD4;
  box-shadow: none;
  text-shadow: -1px -1px rgba(255, 255, 255, 0.3), 1px 1px rgba(0, 0, 0, 0.3);
}

#sample2 input{
    // デフォルトのinputは出力なし
    display: none;
}</code></pre>



<h3 class="wp-block-heading"><span id="toc4">【サンプル3】CSSとJavaScriptを使ってスタイルを変更</span></h3>



<p>次はdiv要素でボタンを作成し、CSSで装飾を付けます。<br>input要素はサンプル2と同様、出力しないようにします。</p>



<pre class="wp-block-code html"><code>&lt;div id="sample3">ファイルを選択&lt;/div>
&lt;input type="file" id="sample3_input"/></code></pre>



<pre class="wp-block-code css"><code>#sample3 {
    position: relative;
    display: inline-block;
    padding: 0.75em 1.25em;
    text-decoration: none;
    color: #FFF;
    background: #03A9F4;/*色*/
    border: solid 1px #0f9ada;/*線色*/
    border-radius: 4px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
    text-shadow: 0 1px 0 rgba(0,0,0,0.2);
    cursor: pointer;
}

#sample3:active {
    border: solid 1px #03A9F4;
    box-shadow: none;
    text-shadow: none;
}

#sample3 input{
    // デフォルトのinputは出力なし
    display: none;
}</code></pre>



<p>JavaScriptでdiv要素をクリックしたときに、input要素をクリックしたイベントを呼び出します。<br>今回はJQueryで記述しています。</p>



<pre class="wp-block-code javascript"><code>$(function () {
    $('#sample3').click(function() {
        $('#sample3_input').trigger('click');
    });
});</code></pre>



<h2 class="wp-block-heading"><span id="toc5">デモ</span></h2>



<p>今までのサンプルそれぞれのデモです。<br>ボタンをクリックするとダイアログが表示されますが、ファイルを選択しても何も起こりません。</p>



<style type="text/css">
#demo > div {
margin: 1rem;
}

        #demo p {
margin: 0;
}

#demo input {
height: auto;
    padding: 0;
border: none;
}

#sample1 {
height: 54px;
width: 150px;
background: url(https://nyanblog2222.com/wp-content/uploads/2020/06/sample1.png) center center / contain no-repeat;
display: inline-block;
cursor: pointer;
}

#sample1:hover {
background: url(https://nyanblog2222.com/wp-content/uploads/2020/06/sample1_hover.png) center center / contain no-repeat;
}

#sample1 input,
#sample2 input,
#sample3_input {
display: none;
}

#sample2 {
position: relative;
display: inline-block;
padding: 0.75em 1.25em;
text-decoration: none;
background: #fd9535;/*背景色*/
color: #d27d00;/*=背景色*/
box-shadow: inset 0 2px 0 rgba(255,255,255,0.2);
border-bottom: solid 2px #d27d00;
border-radius: 4px;
font-weight: bold;
text-shadow: -1px -1px rgba(255, 255, 255, 0.44), 1px 1px rgba(0, 0, 0, 0.38);
cursor: pointer;
}

#sample2:active {
border-bottom: solid 2px #fd9535;
box-shadow: none;
text-shadow: -1px -1px rgba(255, 255, 255, 0.3), 1px 1px rgba(0, 0, 0, 0.3);
}

#sample3 {
position: relative;
display: inline-block;
padding: 0.75em 1.25em;
text-decoration: none;
color: #FFF;
background: #03A9F4;/*色*/
border: solid 1px #0f9ada;/*線色*/
border-radius: 4px;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
text-shadow: 0 1px 0 rgba(0,0,0,0.2);
margin: 0;
cursor: pointer;
}

#sample3:active {
/*押したとき*/
border: solid 1px #03A9F4;
box-shadow: none;
text-shadow: none;
}

    </style>
   
    <div id="demo">
        <div>
            <p>デフォルト</p>
            <input type="file">
        </div>
           
        <div>
            <p>サンプル1</p>
            <label id="sample1">
                <input type="file">
            </label>
        </div>
        
        <div>
            <p>サンプル2</p>
            <label id="sample2">ファイルを選択
                <input type="file">
            </label>
        </div>
        
        <div>
            <p>サンプル3</p>
            <div id="sample3">ファイルを選択</div>
            <input type="file" id="sample3_input">
        </div>
        </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $('#sample3').click(function() {
                $('#sample3_input').trigger('click');
            });
        });
    </script>



<h2 class="wp-block-heading"><span id="toc6">まとめ</span></h2>



<p>今回はinput要素でファイル選択ボタンのスタイルを変更や、画像の設定を行いました。</p>



<p>ぜひ色々試してみてくださいね！</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/html-css/1102/">ファイルを選択するボタンの画像やスタイルを設定する方法＜input type=&#8221;file&#8221;＞</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/html-css/1102/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】非同期処理と処理の順番について【初心者・入門】</title>
		<link>https://nyanblog2222.com/programming/javascript/984/</link>
					<comments>https://nyanblog2222.com/programming/javascript/984/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Tue, 02 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[同期処理]]></category>
		<category><![CDATA[非同期処理]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=984</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/78.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/78.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />JavaScriptは同期的でシングルスレッドの処理で実行されていますが、非同期処理が可能な言語です。ここでは、非同期処理と同期処理・スレッドについてまず説明し、その後処理の順番について説明していきます。 目次 同期処理 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/984/">【JavaScript】非同期処理と処理の順番について【初心者・入門】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/78.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/78.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/78-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>JavaScriptは同期的でシングルスレッドの処理で実行されていますが、非同期処理が可能な言語です。<br>ここでは、<strong><span style="color:#b78d4a" class="has-inline-color">非同期処理と同期処理・スレッド</span></strong>についてまず説明し、その後<strong><span style="color:#b78d4a" class="has-inline-color">処理の順番</span></strong>について説明していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-48" checked><label class="toc-title" for="toc-checkbox-48">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">同期処理と非同期処理</a><ol><li><a href="#toc2" tabindex="0">同期処理</a></li><li><a href="#toc3" tabindex="0">非同期処理</a></li></ol></li><li><a href="#toc4" tabindex="0">スレッドについて</a></li><li><a href="#toc5" tabindex="0">処理の順番</a></li><li><a href="#toc6" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">同期処理と非同期処理</span></h2>



<h3 class="wp-block-heading"><span id="toc2">同期処理</span></h3>



<p><strong><span style="color:#b78d4a" class="has-inline-color">同期処理はプログラムの記述順に1つずつ実行</span></strong>されます。<br>そのため、次の処理は前の処理が終わらないと実行することができません。</p>



<h3 class="wp-block-heading"><span id="toc3">非同期処理</span></h3>



<p>非同期処理は同期処理と異なり<strong><span style="color:#b78d4a" class="has-inline-color">処理が実行する準備をしている空き時間の間に、別の処理を実行</span></strong>することができます。</p>



<p>この説明だけだと、<strong><span style="color:#b78d4a" class="has-inline-color">非同期処理は並列で色んな処理ができるってこと？</span></strong>と思うかもしれません。</p>



<p>答えは　<strong><span style="color:#b78d4a" class="has-inline-color">「No」</span></strong>　です。</p>



<p>あくまで、準備している空き時間を活用しているだけなので、並列で複数の処理ができるわけではありません。<br><strong><span style="color:#b78d4a" class="has-inline-color">並列処理を行うためにはマルチスレッドで処理を実行</span></strong>する必要がありますが、<strong><span style="color:#b78d4a" class="has-inline-color">JavaScriptはシングルスレッド</span></strong>で動きますので、<strong><span style="color:#b78d4a" class="has-inline-color">並列処理ではなく、並行処理</span></strong>と言えます。</p>



<p>並列処理と並行処理の違いはこちらです。</p>



<ul class="wp-block-list"><li><strong><span style="color:#b78d4a" class="has-inline-color">並列処理</span></strong><br>物理的に<strong><span style="color:#b78d4a" class="has-inline-color">複数の処理を同時に実行</span></strong>することができる</li><li><strong><span style="color:#b78d4a" class="has-inline-color">並行処理</span></strong><br>常に<strong><span style="color:#b78d4a" class="has-inline-color">1つの処理のみ実行</span></strong>しているが、タイミングを見計らって<strong><span style="color:#b78d4a" class="has-inline-color">処理を切り替えて処理を効率よく実行</span></strong>する<br><strong><span style="color:#b78d4a" class="has-inline-color">同時に実行しているように見せかけている</span></strong></li></ul>



<h2 class="wp-block-heading"><span id="toc4">スレッドについて</span></h2>



<p>先ほど<strong><span style="color:#b78d4a" class="has-inline-color">シングルスレッド</span></strong>と<strong><span style="color:#b78d4a" class="has-inline-color">マルチスレッド</span></strong>について話が出てきましたが、<strong><span style="color:#b78d4a" class="has-inline-color">スレッド</span></strong>とは何でしょうか。</p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">スレッド</span></strong>とは、1つ1つ実行する処理を表します。</p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">シングルスレッド</span></strong>はその名の通り1つの処理を実行することができます。</p>



<p>対し、<strong><span style="color:#b78d4a" class="has-inline-color">マルチスレッド</span></strong>は複数の処理を実行することができます。</p>



<p>これを先ほどの並列処理と並行処理に当てはめると、このようになります。</p>



<ul class="wp-block-list"><li><strong><span style="color:#b78d4a" class="has-inline-color">並列処理</span></strong>・・・マルチスレッドで実行</li><li><strong><span style="color:#b78d4a" class="has-inline-color">並行処理</span></strong>・・・シングルスレッドで実行</li></ul>



<p>JavaScriptは<strong><span style="color:#b78d4a" class="has-inline-color">シングルスレッド</span></strong>のため、<strong><span style="color:#b78d4a" class="has-inline-color">並行処理をしている</span></strong>ことになりますね。</p>



<h2 class="wp-block-heading"><span id="toc5">処理の順番</span></h2>



<p>さて先述のようにJavaScriptはシングルスレッドであることが理解できましたが、並行処理をしているということは、<strong><span style="color:#b78d4a" class="has-inline-color">処理の順番が入れ替わってしまうこと</span></strong>があります。</p>



<p>JavaScriptは<strong><span style="color:#b78d4a" class="has-inline-color">上から順番でキューに関数を登録し、処理</span></strong>しています。<br>しかし、処理が同期的なものと非同期的なものによって、順番が入れ替わることがあります。</p>



<p>＜上から順番に処理する＞</p>



<pre class="wp-block-code javascript"><code>console.log("one");
console.log("two");
console.log("three");</code></pre>



<p>実行結果</p>



<pre class="wp-block-code plaintext"><code>one
two
three</code></pre>



<p>＜順番が入れ替わっている＞</p>



<pre class="wp-block-code javascript"><code>console.log("one");
setTimeout(function(){console.log("two")}, 0);
console.log("three");</code></pre>



<p>実行結果</p>



<pre class="wp-block-code plaintext"><code>one
three
two</code></pre>



<p>順番が入れ替わっているパターンでは<strong><span style="color:#b78d4a" class="has-inline-color">「setTimeout」関数のタイマーを0ミリ秒で設定</span></strong>しています。<br>ここで不思議なのは、タイマーは0ミリ秒…つまり待ち時間なしで実行するように記述されていますが、実際の実行結果はone→<strong><span style="color:#b78d4a" class="has-inline-color">three→two</span></strong>と<strong><span style="color:#b78d4a" class="has-inline-color">2行目と3行目の順番が入れ替わって</span></strong>います。</p>



<p>キューに登録されているのは、<br>　1. ログ表示　&#8221;one&#8221;<br>　2. タイマー登録　0ミリ秒<br>　3. ログ表示　&#8221;three&#8221;<br>この3つの処理になります。<br>つまり、この時点では、<strong><span style="color:#b78d4a" class="has-inline-color">「ログ表示　&#8221;two&#8221;」はキューにまだ登録されていない</span></strong>のです。</p>



<p>では、いつ「ログ表示　&#8221;two&#8221;」はキューに登録されるのか？</p>



<p>それは、<strong><span style="color:#b78d4a" class="has-inline-color">同期処理が全て終わってから</span></strong>です。</p>



<p>なので、キューの登録の順番は、<br>同期処理<br>　1. ログ表示　&#8221;one&#8221;<br>　2. タイマー登録　0ミリ秒<br>　3. ログ表示　&#8221;three&#8221;<br>同期処理の登録完了後、非同期処理<br>　<strong><span style="color:#b78d4a" class="has-inline-color">4.ログ表示　&#8221;two&#8221;</span></strong><br>となります。</p>



<p>だから先ほどの実行結果のように、順番が入れ替わります。</p>



<h2 class="wp-block-heading"><span id="toc6">まとめ</span></h2>



<p>今回はJavaScriptの<strong><span style="color:#b78d4a" class="has-inline-color">非同期処理と同期処理、処理の順番</span></strong>について、説明していきました。<br>JavaScriptで開発するためには、このあたりをまず始めに理解しておきたいところですね！</p>



<p>非同期処理を同期的に処理する方法については、<br>別の記事にしたいと思います。<br>ご覧いただき、ありがとうございました。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/984/">【JavaScript】非同期処理と処理の順番について【初心者・入門】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/984/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Bingo Game】JavaScriptでビンゴカードの作り方【サンプル】</title>
		<link>https://nyanblog2222.com/programming/javascript/1016/</link>
					<comments>https://nyanblog2222.com/programming/javascript/1016/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 31 May 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[ビンゴカード]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=1016</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/62.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/62.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。今回はJavaScriptを使ってビンゴカードを作成してみました。Jqueryも使用していますので、ご注意ください。 目次 HTMLの設定CSSの設定JavaScriptデモまとめ HTMLの設定 まずは、枠 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1016/">【Bingo Game】JavaScriptでビンゴカードの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/62.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/62.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/62-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。今回はJavaScriptを使ってビンゴカードを作成してみました。Jqueryも使用していますので、ご注意ください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-50" checked><label class="toc-title" for="toc-checkbox-50">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">HTMLの設定</a></li><li><a href="#toc2" tabindex="0">CSSの設定</a></li><li><a href="#toc3" tabindex="0">JavaScript</a></li><li><a href="#toc4" tabindex="0">デモ</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">HTMLの設定</span></h2>



<p>まずは、枠作りのHTMLからです。</p>



<p>ビンゴカードの枠と作成用のボタンを設定しています。</p>



<pre class="wp-block-code html"><code>&lt;div&gt;
    &lt;table id="bingo" cellspacing="10"&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;th&gt;B&lt;/th&gt;
                &lt;th&gt;I&lt;/th&gt;
                &lt;th&gt;N&lt;/th&gt;
                &lt;th&gt;G&lt;/th&gt;
                &lt;th&gt;O&lt;/th&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td id="bi0"&gt;&lt;/td&gt;
                &lt;td id="bi1"&gt;&lt;/td&gt;
                &lt;td id="bi2"&gt;&lt;/td&gt;
                &lt;td id="bi3"&gt;&lt;/td&gt;
                &lt;td id="bi4"&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td id="bi5"&gt;&lt;/td&gt;
                &lt;td id="bi6"&gt;&lt;/td&gt;
                &lt;td id="bi7"&gt;&lt;/td&gt;
                &lt;td id="bi8"&gt;&lt;/td&gt;
                &lt;td id="bi9"&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td id="bi10"&gt;&lt;/td&gt;
                &lt;td id="bi11"&gt;&lt;/td&gt;
                &lt;td id="bi12"&gt;&lt;/td&gt;
                &lt;td id="bi13"&gt;&lt;/td&gt;
                &lt;td id="bi14"&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td id="bi15"&gt;&lt;/td&gt;
                &lt;td id="bi16"&gt;&lt;/td&gt;
                &lt;td id="bi17"&gt;&lt;/td&gt;
                &lt;td id="bi18"&gt;&lt;/td&gt;
                &lt;td id="bi19"&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td id="bi20"&gt;&lt;/td&gt;
                &lt;td id="bi21"&gt;&lt;/td&gt;
                &lt;td id="bi22"&gt;&lt;/td&gt;
                &lt;td id="bi23"&gt;&lt;/td&gt;
                &lt;td id="bi24"&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;p id="button"&gt;&lt;input type="button" value="カード作成" id="bingo-create"&gt;&lt;/p&gt;
&lt;/div&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc2">CSSの設定</span></h2>



<p>ビンゴカードと作成ボタンのスタイルを設定しています。</p>



<pre class="wp-block-code css"><code><em>/* カード全体のスタイル */</em>
<strong>#bingo</strong>{
    width: 340px;
    margin: 0 auto;
}

<em>/* B I N G Oと番号のスタイル */</em>
<strong>#bingo</strong> <strong>th</strong>,
<strong>#bingo</strong> <strong>td</strong> {
    text-align: center;
    font-weight: normal;
}

<em>/* B I N G O の文字のスタイル */</em>
<strong>#bingo</strong> <strong>th</strong>{
    color: #B78D4A;
}

<em>/* 番号のスタイルを設定 */</em>
<strong>#bingo</strong> <strong>td</strong> {
    width: 60px;
    height: 55px;
    text-align: center;
    vertical-align: middle;
    
    border-radius: 1.5rem 1.5rem 0 0;
    color: #fff;
    background-color: #B78D4A;
    border: 2px solid #B78D4A;
}

<em>/* 番号をチェックした時に変更するクラス、スタイルを設定 */</em>
<strong>#bingo</strong> <strong>td</strong>.check {
    color: #B78D4A;
    background-color: #F0F0F0;
}

<em>/* 番号をマウスオーバーした時にポインタを指矢印に変更 */</em>
<strong>#bingo</strong> <strong>td</strong>:hover {
    cursor: pointer;
    cursor: hand;
}

<em>/* 作成ボタンのスタイル */</em>
<strong>p</strong><strong>#button</strong>{
    text-align: center;
}</code></pre>



<h2 class="wp-block-heading"><span id="toc3">JavaScript</span></h2>



<p>JavaScriptでカードの番号をランダムに設定する動きと、<br>番号をクリックした際にスタイルを変更するクラスをつけ外ししています。</p>



<pre class="wp-block-code"><code>$(<strong>function</strong> () {
    <strong>var</strong> make_col = <strong>function</strong> (base) {
        <strong>var</strong> arr = &#91;];
        <strong>for</strong>(<strong>var</strong> i=0; i&lt;15; i++) {
            arr.add(i);
        }
        <strong>var</strong> list = &#91;];
        <strong>for</strong> (<strong>var</strong> i = 1; i &lt;= 5; i++) {
            <em>// ランダムで値を取得</em>
            <strong>var</strong> a = parseInt(Math.random() * arr.length);
            list.push(arr&#91;a] + base);
            <em>// 数字を重複させないため、元々のリストから値を削除する</em>
            arr.splice(a, 1);
        }
        <strong>return</strong> list;
    };

    <strong>var</strong> make_table = <strong>function</strong> () {
        <em>// B列、I列...とそれぞれで5つの数字をランダムで取得</em>
        <strong>var</strong> col_b = make_col(1);
        <strong>var</strong> col_i = make_col(16);
        <strong>var</strong> col_n = make_col(31);
        <strong>var</strong> col_g = make_col(46);
        <strong>var</strong> col_o = make_col(61);
        
        <em>// 25個分の数字を格納できるtableに取ってきた列の数字を設定</em>
        <strong>var</strong> list = <strong>new</strong> Array(25);
        <strong>for</strong> (<strong>var</strong> i = 0; i &lt; 5; i++) {
            list&#91;i * 5 + 0] = col_b&#91;i];
            list&#91;i * 5 + 1] = col_i&#91;i];
            list&#91;i * 5 + 2] = col_n&#91;i];
            list&#91;i * 5 + 3] = col_g&#91;i];
            list&#91;i * 5 + 4] = col_o&#91;i];
        }
        <em>// 中心はfreeで固定</em>
        list&#91;12] = 'free';
        <strong>return</strong> list;
    };
    
    <em>// カード作成関数</em>
    <strong>var</strong> create_card = <strong>function</strong> () {
        <em>// 取ってきた数字が入ったtableをhtmlに出力する</em>
        <strong>var</strong> table = make_table();
        <strong>for</strong> (<strong>var</strong> i = 0; i &lt; table.length; i++) {
            $('#bi' + i).text(table&#91;i]);
        }
    };

    <em>// 初期化関数</em>
    <strong>var</strong> init = <strong>function</strong> () {
        create_card();
        
        <em>// チェック状態を外す</em>
        $('#bingo td').each(<strong>function</strong> () {
            $(<strong>this</strong>).removeClass('check');
        });
    };
    
    <em>// 初期</em>
    init();
    
    <em>// カード作成 ボタンをクリックすると、初期化</em>
    $('#bingo-create').click(<strong>function</strong> () {
        init();
    });
    
    <em>// 番号をクリックすると、スタイルを変更するクラスをつけ外しできる</em>
    $('#bingo td').click(<strong>function</strong> (){
        $(<strong>this</strong>).toggleClass('check');
    });
});</code></pre>



<h2 class="wp-block-heading"><span id="toc4">デモ</span></h2>



<p>こちらが作成したビンゴカードです。</p>



<p><strong><a class="link" href="https://nyanblog2222.com/demo/bingo1/" target="_blank">デモページはこちら<br><img loading="lazy" decoding="async" width="370" height="470" src="https://nyanblog2222.com/wp-content/uploads/2020/06/3506124f65b985a6ade8cea60d65888f.png" alt="" class="wp-image-1168" srcset="https://nyanblog2222.com/wp-content/uploads/2020/06/3506124f65b985a6ade8cea60d65888f.png 370w, https://nyanblog2222.com/wp-content/uploads/2020/06/3506124f65b985a6ade8cea60d65888f-236x300.png 236w" sizes="auto, (max-width: 370px) 100vw, 370px" /></a></strong><br></p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">番号をクリックすると見た目が変更</span></strong>されます。<br>（押し間違い対策でもう一度番号をクリックすると元に戻ります。）<br>カードをリセットしたい場合は、<strong><span style="color:#b78d4a" class="has-inline-color">「カード変更」</span></strong>ボタンをクリックすると、初期化されます。</p>



<h2 class="wp-block-heading"><span id="toc5">まとめ</span></h2>



<p>今回はJavaScriptを使って、ビンゴカードを作成してみました。<br>列がそろったらBINGO！の表示を追加するのも面白いですね！<br>近いうちに試してみたいと思います。</p>



<p>次回の記事も良かったらご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog-にゃんぶろぐ wp-block-embed-nyanblog-にゃんぶろぐ"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/javascript/1194/" title="【Bingo Game】JavaScriptでビンゴゲームの作り方【サンプル】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/63-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/63-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/63-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Bingo Game】JavaScriptでビンゴゲームの作り方【サンプル】</div><div class="blogcard-snippet internal-blogcard-snippet">JSでビンゴマシンを作成してみましたのでサンプルコードをご紹介します。簡単にできて解説もついて分かりやすくしています。ビンゴカード作成の記事もありますので、良かったら見てみてください♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.09</div></div></div></div></a>
</div></figure>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/1016/">【Bingo Game】JavaScriptでビンゴカードの作り方【サンプル】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/1016/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【CSS】object-fit,object-positionのIE対応【object-fit-images】</title>
		<link>https://nyanblog2222.com/programming/javascript/965/</link>
					<comments>https://nyanblog2222.com/programming/javascript/965/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Wed, 27 May 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[object-fit]]></category>
		<category><![CDATA[object-fit-images]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=965</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/89.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/89.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/89-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/89-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/89-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />前回まで、CSSのobject-fit、object-positionプロパティの使い方をご紹介しました。 ただし、前回までの記事でも記載したように、このプロパティはIEには対応しておらず、別途対応する必要があります。今 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/965/">【CSS】object-fit,object-positionのIE対応【object-fit-images】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/89.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/89.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/89-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/89-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/89-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>前回まで、CSSの<strong><span style="color:#b78d4a" class="has-inline-color">object-fit、object-positionプロパティ</span></strong>の使い方をご紹介しました。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/html-css/884/" title="【CSS】object-fitの使い方【img要素の縦横比固定方法】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/87-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/87-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/87-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/87-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/87-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【CSS】object-fitの使い方【img要素の縦横比固定方法】</div><div class="blogcard-snippet internal-blogcard-snippet">CSSに「object-fit」プロパティで「cover」を設定することにより、画像の縦横比を固定したまま指定サイズで画像を配置する方法を紹介します。他にも「object-fit」プロパティにてどのように配置するか設定することも可能。コピペで試せるサンプル付きなので、勉強にもどうぞ♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.24</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/programming/html-css/928/" title="【CSS】object-positionの使い方【img要素の画像配置設定】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/88-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/88-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/88-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/88-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/88-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【CSS】object-positionの使い方【img要素の画像配置設定】</div><div class="blogcard-snippet internal-blogcard-snippet">img要素などの置換要素に対して、コンテンツをどこに配置するかを設定する「object-position」プロパティを詳しく紹介します。コピペで試せるサンプル付きなので、勉強にもどうぞ♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.26</div></div></div></div></a>
</div></figure>



<p>ただし、前回までの記事でも記載したように、このプロパティはIEには対応しておらず、別途対応する必要があります。<br>今回はIEに対応させる<strong><span style="color:#b78d4a" class="has-inline-color">object-fit-images</span></strong>を使用して、<strong><span style="color:#b78d4a" class="has-inline-color">object-fit、object-positionプロパティを有効</span></strong>にできる方法を紹介していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-52" checked><label class="toc-title" for="toc-checkbox-52">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">object-fit-imagesライブラリを有効にする</a><ol><li><a href="#toc2" tabindex="0">CDNを貼り付ける</a></li><li><a href="#toc3" tabindex="0">ダウンロードしたファイルを読み込む</a></li></ol></li><li><a href="#toc4" tabindex="0">img要素にクラスを追加</a></li><li><a href="#toc5" tabindex="0">CSSに”font-family”プロパティを設定</a></li><li><a href="#toc6" tabindex="0">JavaScriptの記述を追加</a></li><li><a href="#toc7" tabindex="0">処理結果</a></li><li><a href="#toc8" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">object-fit-imagesライブラリを有効にする</span></h2>



<p>まずは、object-fit-imagesライブラリを有効にしていきます。<br>方法は2つあり、<br>1つはCDNを読み込む方法。<br>もう1つはダウンロードしたファイルを読み込む方法。です。</p>



<h3 class="wp-block-heading"><span id="toc2">CDNを貼り付ける</span></h3>



<p>CDNとは、<strong><span style="color:#b78d4a" class="has-inline-color">「Content Delivery Network」</span></strong>の頭文字を取った略称で、<strong><span style="color:#b78d4a" class="has-inline-color">「コンテンツ配信ネットワーク」</span></strong>を指します。<br>簡単に言うと、<strong><span style="color:#b78d4a" class="has-inline-color">ネットワーク上に配置されているファイルにアクセスできる仕組み</span></strong>のことです。<br>この仕組みを使うとサーバの負荷を一部肩代わりしてくれるようになるため、レスポンスが早くなると言われています。</p>



<p>htmlにscript要素を使って、CDNを読み込ませます。</p>



<pre class="wp-block-code html"><code>&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/object-fit-images/3.2.4/ofi.js"&gt;&lt;/script&gt;</code></pre>



<h3 class="wp-block-heading"><span id="toc3">ダウンロードしたファイルを読み込む</span></h3>



<p>こちらのサイトから<strong><span style="color:#b78d4a" class="has-inline-color">「Clone or download」</span></strong>をクリックしてダウンロードしてください。<br><a rel="noopener" class="link" href="https://github.com/bfred-it/object-fit-images" target="_blank">https://github.com/bfred-it/object-fit-images</a></p>



<p>ダウンロードしたファイルの中から<strong><span style="color:#b78d4a" class="has-inline-color">「ofi.js」</span></strong>ファイルを読み込む設定をhtmlのscript要素で設定します。</p>



<pre class="wp-block-code html"><code>&lt;script src="ofi.min.js"&gt;&lt;/script&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc4">img要素にクラスを追加</span></h2>



<p>object-fit、object-positionプロパティを使用するimg要素にクラスを追加します。<br><strong><span style="color:#b78d4a" class="has-inline-color">クラス名は任意で問題ない</span></strong>ので、既にクラスを指定している場合はそのクラスを使っても大丈夫です。</p>



<pre class="wp-block-code html"><code>&lt;img src="img/01.jpg" class="object-image"&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc5">CSSに”font-family”プロパティを設定</span></h2>



<p>2～5行目まではimgのサイズ設定と処理結果が分かりやすいように、背景色と境界線を設定しています。</p>



<p>7、8行目：object-fit、object-positionプロパティを設定しています。<br>10行目：IE用に<strong><span style="color:#b78d4a" class="has-inline-color">「font-family」プロパティ</span></strong>を設定します。値は7、8行目で設定した値と同じ値を設定します。</p>



<pre class="wp-block-code css"><code><strong>object-image</strong>{
    width: 400px;
    height: 300px;
    background-color: #999;
    border: 1px solid #666;

    object-fit: none;
    object-position: right;
    // IEのブラウザに対応
    font-family: 'object-fit: none; object-position: right;';
}</code></pre>



<p>10行目があれば、7、8行目は不要なのかも？と思い、試してみましたが、<strong><span style="color:#b78d4a" class="has-inline-color">object-fit、object-positionが反映されなかった</span></strong>ので、別々に記述が必要みたいです。</p>



<h2 class="wp-block-heading"><span id="toc6">JavaScriptの記述を追加</span></h2>



<p>htmlファイル内の&lt;/body&gt;の直前にscript要素を追加し、objectFitImages関数を呼び出します。</p>



<p>全てのimg要素に対応させる場合は引数なし。<br>任意のクラスに画像を対応させたい場合は引数に<strong><span style="color:#b78d4a" class="has-inline-color">「img.クラス名」</span></strong>を設定します。<br>※ クラス名のみでは、反映されないので、注意してください。</p>



<pre class="wp-block-code"><code>// 全てのimg要素に対応
&lt;script&gt;
    objectFitImages();
&lt;/script&gt;

// 指定のimg要素のクラスに対応
&lt;script&gt;
    objectFitImages('img.object-image');
&lt;/script&gt;</code></pre>



<h2 class="wp-block-heading"><span id="toc7">処理結果</span></h2>



<p>ここまで設定が終わりましたら、処理結果を見てみましょう。<br><strong><span style="color:#b78d4a" class="has-inline-color">このページをIEで開き</span></strong>、対応前と比較して<strong><span style="color:#b78d4a" class="has-inline-color">対応後ではobject-fitが効いていること</span></strong>を確認してみてください。<br>他のブラウザでは対応前と対応後では一緒の動きをしています。</p>



<p>object-fit-images対応前</p>



<style type="text/css">
    <!--
img.sample{
    width: 400px;
    height: 300px;

    /* imgのサイズを分かりやすくするため、background-color、
       borderを設定し、object-fitはnoneを設定しています。 */
    background-color: #999;
    border: 1px solid #666;
    object-fit: none;
    object-position: right;
}

    -->
</style>
    <img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2020/05/01.jpg" alt="object-fit-image確認" class="sample">



<p>object-fit-images対応後</p>



<script src="https://cdnjs.cloudflare.com/ajax/libs/object-fit-images/3.2.4/ofi.js"></script>
<style type="text/css">
    <!--
img.object-image{
    width: 400px;
    height: 300px;

    /* imgのサイズを分かりやすくするため、background-color、
       borderを設定し、object-fitはnoneを設定しています。 */
    background-color: #999;
    border: 1px solid #666;
    object-fit: none;
    object-position: right;
    font-family: 'object-fit: none; object-position: right;';
}

    -->
</style>
    <img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2020/05/01.jpg" alt="object-fit-image確認" class="object-image">

<script>
    objectFitImages('img.object-image');
</script>



<h2 class="wp-block-heading"><span id="toc8">まとめ</span></h2>



<p>いかがでしたでしょうか。<br>今回は「object-fit-imagesライブラリ」を使って、IEのブラウザにobject-fitを対応させてみました。<br><s>まだまだIEのブラウザは使用されているので、対応させて損はないと思います。</s><br>※<span class="bold-red"> 2022年6月15日でサポート終了予定</span></p>



<p>4つの簡単なステップで対応ができるので、良かったら試してみてください。</p>



<p>今回の記事が何かの参考になれば幸いです。<br>ご来訪ありがとうございました。それでは♪</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/965/">【CSS】object-fit,object-positionのIE対応【object-fit-images】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/965/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】console.logでデバッグ【フォーマット文字列】</title>
		<link>https://nyanblog2222.com/programming/javascript/822/</link>
					<comments>https://nyanblog2222.com/programming/javascript/822/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 23 May 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Console.log]]></category>
		<category><![CDATA[デバッグ]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=822</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/78_new.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/78_new.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/78_new-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/78_new-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/78_new-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />こんにちは。前回はconsole.log関数を使って、基本的なデバッグ方法をご紹介しました。詳しくは良かったらこちらの記事をご覧ください。 今回は、%s, %d, %f, %oなどのフォーマット文字列を使って変数でデバッ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/822/">【JavaScript】console.logでデバッグ【フォーマット文字列】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/78_new.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/78_new.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/78_new-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/78_new-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/78_new-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>こんにちは。前回はconsole.log関数を使って、基本的なデバッグ方法をご紹介しました。<br>詳しくは良かったらこちらの記事をご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/javascript/775/" title="【JavaScript】デバッグ中に値を確認してみよう！【console.log】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/77-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/77-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/77-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/77-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/77-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【JavaScript】デバッグ中に値を確認してみよう！【console.log】</div><div class="blogcard-snippet internal-blogcard-snippet">プログラム中にデバッグをしていますか？今回は基本的な方法でブラウザでコンソールウィンドウを表示させ、デバッグできる、console.log関数の使い方を説明していきます。特に初心者の方へぜひ見ていただきたいです。デバッグとは、プログラム開発の際に発生したバグ（不具合、誤り）を見つけ、修正する作...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.21</div></div></div></div></a>
</div></figure>



<p><br>今回は、<strong><span style="color:#b78d4a" class="has-inline-color">%s, %d, %f, %oなどのフォーマット文字列</span></strong>を使って変数でデバッグをしてみましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-54" checked><label class="toc-title" for="toc-checkbox-54">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">%s 文字列を出力</a></li><li><a href="#toc2" tabindex="0">%d, %i, %f 数値を出力</a></li><li><a href="#toc3" tabindex="0">%o(%O) オブジェクトを出力</a></li><li><a href="#toc4" tabindex="0">%c コンソールの出力を装飾</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">%s 文字列を出力</span></h2>



<p>%sを使って、<strong><span style="color:#b78d4a" class="has-inline-color">文字列を出力</span></strong>します。<br>こちらはソースコードの記述例です。</p>



<pre class="wp-block-code javascript"><code><strong>var</strong> temp1 = "sample";
<strong>var</strong> temp2 = "文字列";

console.log("temp1 : %s", temp1)
console.log("temp2 : %s", temp2)</code></pre>



<p>このように<strong><span style="color:#b78d4a" class="has-inline-color">%sを設定した箇所</span></strong>に、<strong><span style="color:#b78d4a" class="has-inline-color">第2引数で設定した変数の値が出力</span></strong>されています。</p>



<pre class="wp-block-code plaintext"><code>temp1 : sample
temp2 : 文字列</code></pre>



<h2 class="wp-block-heading"><span id="toc2">%d, %i, %f 数値を出力</span></h2>



<p>%d, %i, %fを使って<strong><span style="color:#b78d4a" class="has-inline-color">数値を出力</span></strong>します。<br><strong><span style="color:#b78d4a" class="has-inline-color">%d, %i</span></strong> : 整数値を出力<br><strong><span style="color:#b78d4a" class="has-inline-color">%f</span></strong> : 浮動小数点数値を出力<br>こちらはソースコードの記述例です。</p>



<pre class="wp-block-code javascript"><code><strong>var</strong> num1 = 123;
<strong>var</strong> float1 = 234.56;

<strong>var</strong> format_d = "%d";
<strong>var</strong> format_i = "%i";
<strong>var</strong> format_f = "%f";

<em>// 整数を%d, %iで出力</em>
console.log("%s : %d" + "\r\n%s : %i", format_d, num1, format_i, num1)

<em>// 小数を%d, %iで出力</em>
console.log("%s : %d" + "\r\n%s : %i", format_d, float1, format_i, float1)

<em>// 整数、小数を%f, %fで出力</em>
console.log("%s : %f" + "\r\n%s : %f", format_f, num1, format_f, float1)</code></pre>



<p>コメントにも記載していますが、</p>



<p>1. <strong><span style="color:#b78d4a" class="has-inline-color">整数</span></strong>を<strong><span style="color:#b78d4a" class="has-inline-color">%d, %i</span></strong>で表示させた場合<br>2. <strong><span style="color:#b78d4a" class="has-inline-color">小数</span></strong>を<strong><span style="color:#b78d4a" class="has-inline-color">%d, %i</span></strong>で表示させた場合<br>3. <strong><span style="color:#b78d4a" class="has-inline-color">整数、小数</span></strong>を<strong><span style="color:#b78d4a" class="has-inline-color">%f</span></strong>で表示させた場合</p>



<p>のパターンで記述しているのを確認できます。<br>この実行結果のように、<strong><span style="color:#b78d4a" class="has-inline-color">小数の値を%d, %iで出力させると、小数部分が切り捨てされてしまう</span></strong>ので、注意しましょう。</p>



<pre class="wp-block-code plaintext"><code>// 整数を%d, %iで出力
%d : 123
%i : 123

// 小数を%d, %iで出力
%d : 234
%i : 234

// 整数、小数を%fで出力
%f : 123
%f : 234.56</code></pre>



<h2 class="wp-block-heading"><span id="toc3">%o(%O) オブジェクトを出力</span></h2>



<p>%o(%O)を使って、<strong><span style="color:#b78d4a" class="has-inline-color">オブジェクトを出力</span></strong>します。<br>オブジェクトをクリックすることで、詳細情報を確認することができます。<br>こちらはソースコードの記述例です。</p>



<pre class="wp-block-code javascript"><code><strong>var</strong> obj = {
    hoge1: 'value1'
   , hoge2: 'value2'
   , hoge3: 'value3'
   , hoge4: 'value4'
};
console.log("オブジェクト : %O", obj)

<strong>var</strong> url = "https://nyanblog2222.com/"
console.log("URL : %o", url)</code></pre>



<p><strong><span class="has-inline-color has-pale-pink-color">赤枠</span></strong>内のように<strong><span style="color:#b78d4a" class="has-inline-color">オブジェクトの要素を確認したり、URLをクリックして、実際にどこのページへジャンプしたり</span></strong>、確認することができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="488" height="231" src="https://nyanblog2222.com/wp-content/uploads/2020/05/241560eb41110cd55be45ebcadaf8e9f.png" alt="コンソール画面　オブジェクトの中身" class="wp-image-873" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/241560eb41110cd55be45ebcadaf8e9f.png 488w, https://nyanblog2222.com/wp-content/uploads/2020/05/241560eb41110cd55be45ebcadaf8e9f-300x142.png 300w" sizes="auto, (max-width: 488px) 100vw, 488px" /></figure>



<h2 class="wp-block-heading"><span id="toc4">%c コンソールの出力を装飾</span></h2>



<p>%cを使って、<strong><span style="color:#b78d4a" class="has-inline-color">%c以降の記述にスタイルを設定</span></strong>することができます。<br>こちらはソースコードの記述例です。</p>



<pre class="wp-block-code"><code>console.log("ここまでのtextは反映無し %cここからstyleが反映されます。"
    , "padding: 5px; color: #FFF0ED; font-weight: bold; background-color: #47A4A5;");</code></pre>



<p><strong><span class="has-inline-color has-pale-pink-color">赤枠</span></strong>内のように、<strong><span style="color:#b78d4a" class="has-inline-color">%c以降に設定したスタイルが適用</span></strong>されていることが確認できますね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="604" height="118" src="https://nyanblog2222.com/wp-content/uploads/2020/05/b107e2d1f0eef8df294dffc8569d4392.png" alt="コンソール画面　スタイル設定" class="wp-image-875" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/b107e2d1f0eef8df294dffc8569d4392.png 604w, https://nyanblog2222.com/wp-content/uploads/2020/05/b107e2d1f0eef8df294dffc8569d4392-300x59.png 300w" sizes="auto, (max-width: 604px) 100vw, 604px" /></figure>



<h2 class="wp-block-heading"><span id="toc5">まとめ</span></h2>



<p>前回に引き続き、console.log関数の使い方について、ご紹介いたしました。<br>色々な方法で、変数の中身を確認することができるのですね！<br>%dや%iでは、桁数を色々変えて実際の値を見てみたり、%cでは、そのスタイルなら適用できるのかを確認したりするのも、面白いと思います！</p>



<p>それでは、本記事をご覧いただき、ありがとうございました。<br>次回は、console内の他の関数の使い方について、ご紹介していきたいと思います。<br>良ければ次回もご覧ください。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/javascript/822/">【JavaScript】console.logでデバッグ【フォーマット文字列】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/javascript/822/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
