- 1. javascriptでスタックとキューを書く
- 2. 【決定版?!】モダンブラウザでIME入力検知:MutationObserver
- 3. オーガナイズドなCSSとミニマルなJSで実装する三枚綴りページ
- 4. JavaScriptでフォントが存在するか確認する方法
- 5. nuxtでDOMException: Failed to execute ‘appendChild’ on ‘Node’エラー
- 6. Vue.js研修資料
- 7. vue cliのsass(scss)でglobを使ってインポートするためのメモ
- 8. Javascriptのチートシート10選
- 9. JavaScript のスコープを理解する
- 10. JavaScript 文字列中に変数展開できるテンプレート構文
- 11. amazon-qldb-driver-nodejsからQLDBを使う①(接続編)
- 12. Create.jsで親子関係のツリー図を描く
- 13. スクリプト言語 KINX/基本編(2) – 制御構造
- 14. 【初心者】JavaScriptでカレンダーのプログラミングを解説
- 15. Lambda+API Gateway+CloudFrontとVueでOGP画像の自動生成をする
- 16. GAS Drive関連メモ
- 17. ブラウザバックした際に、画面をリロードでうまくいかないとき。
- 18. Bootstrapでモーダルを重ねる
- 19. Vue.jsを使って簡単な計算ツールを作った
- 20. 【JavaScript】ElementUIのFormComponentを使用したフォームでリクエスト送信時、二重送信されないように画面をロックさせる
javascriptでスタックとキューを書く
#最初に
まずはじめにスタックとキューについて説明します。
スタックというものは後にいれたものを先に取り出すことです。
キューは先にいれたものを先に取り出すことです。
##スタックとキューのやり方
**スタック**“`javascript:main.js
let arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.push(4);//[1,2,3,4]
console.log(arr.pop()); //4
console.log(arr.pop()); //3
console.log(arr.pop()); //2
console.log(arr.pop()); //1
“`
スタックではpushメソッドとpopメソッドを使います。
push()は配列の最後に引数に入ってるものを格納するメソッドで,popメソッドは配列の最後にある物を取り出すメソッドです。まず最初に変数arrのところで配列を宣言します。
そのあとにpush()で引数に入っている数字を格納していっています。
次にpopメソッドで最後のほうから取り出
【決定版?!】モダンブラウザでIME入力検知:MutationObserver
## モチベーション
**MutationObserver とMutationRecord でDOMの変更を監視。変更前の状態も取得できるので、IMEの入力制御に使えそう!**
さて、モダンブラウザとElectronで動くMarkdownエディタを作っています。ユーザーのキー入力を監視して、自前でDOM操作したいわけですが、IMEだけはどうしても苦労しています。これまで、CompositionEventの監視による試行錯誤の結果を何度か投稿しましたが、今回は別の手段としてMutationObserver を試したのでまた情報共有の投稿です。
– 過去記事1: [モダンブラウザにおけるIME入力検知](https://qiita.com/pochman/items/5b69ebedf4465f93c2f1)
– 過去記事2: [モダンブラウザにおけるキー入力のキャンセル](https://qiita.com/pochman/items/b99c835bf598810d3c18)## MutationObserverのメリット
そのMutationObserverですが、Co
オーガナイズドなCSSとミニマルなJSで実装する三枚綴りページ
####テーマ
「DHTMLを極める為にJSを極める」という考え方はもう古いという事に最近気がついた。時代のニーズのトレンドは「周到なCSSを如何に練り上げ、JSやPHPにどれだけしょうもないことをさせるか」ではないか。例えば↓↓↓こんな風に。####やりたいこと
html1ページに3枚のページを重ねて表示する。
1枚目を中央に配置し、2枚目を右下、3枚目を左上にずらす。
2枚目をクリックすると2枚目が一番上にめくり上がり、3枚目をクリックすると3枚目が一番上にめくり上がる。
1→2→3→1→2や、1→3→2→1→3の切り替えは無限に可能。
####手順1
htmlタグはとてもシンプル。大雑把に言えば、一つのulに5つのliを入れているだけ。
ulは可動域を示し、liはページx3と切替
JavaScriptでフォントが存在するか確認する方法
指定したフォントが存在するか真偽値を返す関数。
“`js
function font_exists(fontName){
const canvas = document.createElement(‘canvas’).getContext(‘2d’)
const text = ‘abcdefghijklmnopqrstuvwxyz0123456789’canvas.font = `72px monospace`
const size1 = canvas.measureText(text).widthcanvas.font = `72px ${fontName}, monospace`
const size2 = canvas.measureText(text).widthreturn size1 !== size2
}
“`
nuxtでDOMException: Failed to execute ‘appendChild’ on ‘Node’エラー
#Failed to execute ‘appendChild’ on ‘Node’
`nuxt` でこんな感じのエラーが出る
因みに`dev` では出ない。“`
DOMException: Failed to execute ‘appendChild’ on ‘Node’: This node type does not support this method.
at Object.appendChild
“`#原因
`` タグ内に `` が入ってると起こる
色々なエラーにつながるので原因究明がしづらい。注意。
Vue.js研修資料
#この資料について
・2020年の新卒に向けた研修資料である
・目的はVue.jsへの導入
・プロゲートで【HTML・CSS・JavaScript】を一通り終えた後を想定して作った
・この講義の後は下のサイトのイントロコースをやってもらう
https://www.vuemastery.com/
イントロコース完了後にVueUIの Vuetifyについて講義を行う(キータで投稿予定)
https://vuetifyjs.com/ja/#Vue.jsとは
JavaScriptの3大フレームワークの1つ
左から順番にAngular・React・Vue.js
![スクリーンショット 2020-02-28 21.58.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373045/82e544f6-1d6e-9def-031c-de68d8d4f76d.png)##利用している企業
Angular
・YouTube Google Udemy Nike PayPal
React
vue cliのsass(scss)でglobを使ってインポートするためのメモ
#プロローグ
都内某所にてvue cliを使ってWEBアプリケーションを作っていると、唐突に神[^1]からの信託が下った。
**「ん~…、CSSはBEMを使って書いてほしいんだなぁ~」**[^2]
私はその時何が起こったのか理解できなかった。
vueファイルってscoped使えるし、BEMで作るとテンプレートにclassたくさん書いて見づらくなるんでやらない方が良いと思うし、なんで必要なんですかね?と問いかけても明確な答えはなかった…。
## globが欲しい
かつて、WEB制作会社(ブラック)で日夜働いていた時の私は、BEMに習いblockごとに作られたcssファイルを@importする作業に疲弊していた。
そんなときにsassでglobするgulpの設定を知った際には、初めてアッパー昇竜拳[^3]が打てた時以来の感動がありました。### vue cliのsass(scss)でglobを使ってインポートする
そんなわけで、かなり需要が無いと思われるvue-cliでglobの方法です。
vue cliのsassはwebpackを使っていますので、`node-sass
Javascriptのチートシート10選
1. htmlcheatsheet.com/
https://htmlcheatsheet.com/js/
基本機能が一望できるので、端から写経していくだけでも、初心者レベルであれば勉強になります。
仕事でのコーディングの際に、記述方法をど忘れした時などにたまに助かるサイトです。2. websitesetup.org
PDFをmarkdownでウェブで再現したサイトです。
初心者が勉強する時の内容としては、非常にまとめてくれていて便利です。
ただ、それぞれの関数の細かな意味がこれだけだと分かりにくいのと、網羅性が低く、内容に偏りがあるので、ビギナー向けのチートシートですね。
3. javascript.pythoncheatsheet.org
https://javascript.pythoncheatsheet.org/
こちらも、初心者学習用のチートシートです。
熟練者でも基本をど忘れした時にチラッと見ると思い出せて便利
JavaScript のスコープを理解する
JavaScript のスコープを理解する
JavaScriptについておさらい
スコープとは、変数の有効範囲のことで、プログラムのどの場所から参照できるかを決める概念です。スコープの種類
JavaScript のスコープには、グローバル変数とローカル変数の 2 種類あります。グローバル変数 ローカル変数
関数の外(トップレベル)で宣言した変数 関数の中で宣言した変数, 関数の仮引数
プログラム全体から参照できる その関数の中でのみ参照できる
ブロックスコープは存在しない
Java などの言語では、if や for などの {} で囲まれたブロックごとにもブロックスコープがありますが、JavaScript には存在しません。 JavaScript でどうしてもブロックスコープを使いたい場合は、with 命令を使う方法や、無名関数を定義と同時に呼び出すなどの方法で、擬似的にブロックスコープを作ることは可能です。補足 : let を使うとブロックスコープがつくれると教えてもらったのですが、ちゃんと調べてないので、調べたらここに追記します!
スコープの役割
同じ名前の変数が
JavaScript 文字列中に変数展開できるテンプレート構文
“`javascript
var val = “JavaScript”
// 今までのやり方
var str1 = “Hello ” + val + “!” // => Hello JavaScript!
// テンプレート構文
var str2 = `Hello ${val}!` // => Hello JavaScript!“`
amazon-qldb-driver-nodejsからQLDBを使う①(接続編)
## QLDBとは
https://aws.amazon.com/jp/qldb/
Amazonが提供するフルマネージド型の台帳データベースです。
ブロックチェーンとは異なり中央集権で管理されます。データに対する変更は全て記録され、後から確認可能なようです。
また、変更履歴が正確であることを暗号的に検証する機能を提供しています。
https://docs.aws.amazon.com/qldb/latest/developerguide/verification.html中央集権からトランザクションの実行時にネットワーク参加者の合意を経る必要がないため、一般的なブロックチェーンベースのフレームワークより高いスループットが出るようです。
以上から、「データの信頼性やトレーサビリティを担保したいけど、分散型である必要はない」などの場合にとても魅力的な選択肢になりそうです。
## amazon-qldb-driver-nodejsについて
プログラムからアクセスする場合は現状はJavaのdriverを使うのが主流なようです。
nodejs用のdriverも用意されており、今
Create.jsで親子関係のツリー図を描く
# 概要
管理画面などで、既存のリストから親子関係のツリーを設定するUIを作ってみたくてやってみる。有料のライブラリなどは見かけますが、使用料が高い・・・。
また、そこまで高機能なものは必要なかったりしたのでシンプルにする。## 前提条件
HTML5のCanvasを操作するCreate.jsのライブラリを使っています。* [CreateJSとは](https://ics.media/tutorial-createjs/basic/)
## ファイル構成
ローカルで動作確認したかったのでdocker使ってます。
※ Github: https://github.com/reflet/flowchart-create.js“`:ファイル構成
├ docker
│ └ nginx
│ └ default.conf
├ src
│ └ html
│ ├ flowchart.js <- ツリー図を描くスクリプト │ └ index.html <- サンプルページ │ └ docker-compose.yml ``` ## サンプルコー
スクリプト言語 KINX/基本編(2) – 制御構造
# はじめに
[前回](https://qiita.com/Kray-G/items/f1f891fe799fcc757834)の続き。過去の解説は以下を参照。概要は以下の初回記事[「スクリプト言語 KINX(ご紹介)」](https://qiita.com/Kray-G/items/ca08b6fb40d15dd0ec76)を参照してください。
* [スクリプト言語 KINX(ご紹介)](https://qiita.com/Kray-G/items/ca08b6fb40d15dd0ec76)
* [Kinx 基本編(1) – プログラム基礎・データ型](https://qiita.com/Kray-G/items/f1f891fe799fcc757834)
* Kinx 基本編(2) – 制御構造(今回)「**見た目は JavaScript**、**頭脳(中身)は Ruby**、(**安定感は AC/DC**)」な**スクリプト言語 KINX**。オブジェクト指向と C 系シンタックスで **C 系プログラマになじむ触感** をお届け。
# Kinx 基本編(2
【初心者】JavaScriptでカレンダーのプログラミングを解説
どうも、UT([@ut_1029](https://twitter.com/ut_1029))です。ブログ([UTの日常](https://blog.mm-kun.com/category/system/))の紹介です。
JavaScriptでカレンダーをプログラミングしたサンプルコードを紹介します。
## JavaScriptでカレンダーのプログラミング
“`html
JavaScript Programming Lambda+API Gateway+CloudFrontとVueでOGP画像の自動生成をするLambda+API Gateway+CloudFrontとVueを使ってフロントエンドのみでOGP画像の自動生成をしてみたので備忘録。
###構成
まずVueでSVGを返すページを用意しておく。
Lambda側は`chrome-aws-lambda`でスクリーンショットを撮って、base64で返すようにする。よくあるLambda@Edgeを使ったダイナミックレンダリングを行いつつ、Edgeで返すMetaタグの`og:image`や`twitter:image`のURLへのアクセスがあったら、用意しておいたSVGページをLambdaでスクリーンショット撮ってAPI Gateway経由でpngにして返す、というちょっと面倒くさい構成。
バックエンド側でLambdaを起動させてスクリーンショット撮ってS3に保存とかでもよかったのだけど、今回はあくまでもアクセスがあったらOGP画像を返すようにしたかったので、こんな感じの構成にした。
###VueでSVG生成
VueでSVGを生成するのはこちらの記事を参考にさせていただいた。
[Vue.jsとFirebaseでOGP画像生成系のサー
GAS Drive関連メモ
Driveクラスをちょっとつかったのでメモ
やりたかったのは指定のファイルと同じフォルダに名前を変えてコピーをつくる、だけだったんだけど。
色々時間かかったので忘れないようにメモ
[リファレンス](https://developers.google.com/apps-script/reference)大事だねぇ。1.前準備
権限設定しておく(ここではDrive関連のエントリだけ記載
(スプレットシートなど他の操作をする場合はそちらのエントリも必要“`appscript.json
{
“oauthScopes”: [
“https://www.googleapis.com/auth/drive.readonly”,
“https://www.googleapis.com/auth/drive”,
]
}
“`2.ファイルの取得
上記の権限があれば以下でファイルオブジェクトが取得できる
[Fileクラス](https://developers.google.com/apps-script/reference/drive/file)
FILE_I
ブラウザバックした際に、画面をリロードでうまくいかないとき。
備忘録的に残します。
ブラウザバックの際に、画面をリロードしたいって時がありまして。
“`js
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload();
}
};
“`これでは、firefoxはできたけど、chromeとEdgeでは効かないって話でした。
なので、
“`js
window.onpageshow = function(event) {
if (event.persisted || window.performance &&
window.performance.navigation.type == 2) {
window.location.reload();
}
};
“`
これで、できました。
めでたし、めでたし。※ただし、ブラウザバックだけでなく、フォワードした際にも入る可能性がある(未検証)ので、他の制御はいるかも。
参考:元ネタは[ここ](https://stackoverflo
Bootstrapでモーダルを重ねる
# 【javascript】Bootstrapでモーダルを重ねたい!
普通にモーダル2つ表示しようとすると下になったりして対応していないのですが
z-index を設定してやれば動くようです。環境: bootstrap3
“`javascript
$(function() {
// Modal on Modal
$(document).on(‘shown.bs.modal’, ‘.modal’, function (event) {
var zIndex = Math.max.apply(null, Array.prototype.map.call(document.querySelectorAll(‘*’), function(el) {
return +el.style.zIndex;
})) + 10;
$(this).css(‘z-index’, zIndex);
setTimeout(function() {
$(‘.modal-backdrop’).not(
Vue.jsを使って簡単な計算ツールを作った
#はじめに
グランブルファンタジーというゲーム内のイベントである古戦場にて、目的の貢献度を貯めるためにはどれくらいのトリガーが必要か?を計算するツールを作りました。
作り自体は簡単なため、初めてVue.jsを勉強&アウトプットするにはいい題材でした。実際に動かしたもの
http://ayama.main.jp/battlefieldRun.htmlコード
https://github.com/guranytou/battlefieldRuns#一番困った部分
“`html:battlefieldRun.html
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた