タグ

javascriptに関するjytechのブックマーク (155)

  • JavaScriptの『エラー解決に困ったとき』に見るサイト - Qiita

    エンジニアのみなさま、日々の学習当にお疲れ様です! また記事まで足を運んでいただき当に感謝です。 約2分程度で読めるので最後まで読んでもらえると幸いです。 はじめに エラーが発生したとき、みなさまはどのように対処していますか? 多くのエンジニアが最初に頼るのは、誰かが書いたブログ記事やフォーラムの投稿かもしれません。しかしながら、記事の情報が古かったり、記事自体の解釈が間違っていたりする可能性もあるため、解決までに時間がかかることも多々あります。 一方で、主観にはなりますが「できるエンジニア」と呼ばれる人は、 公式ドキュメントやオープンソース など、いわゆる 「一次情報」 と呼ばれる質の高いものに触れながら解決している人が多い印象です。 今回ご紹介するのは Mozilla Developer Network(MDN) になります。 MDNは、問題を解決するためのテーマが丁寧に書かれた

    JavaScriptの『エラー解決に困ったとき』に見るサイト - Qiita
  • lenis.jsでposition:fixed要素のoverflow:scrollを効かせる - Qiita

    はじめに 慣性スクロールを手軽に実装できる、Lenis.jsを使っているサイトでモーダルを作成した際、position:fixed要素のoverflow:scrollが効かない時の対処法です。 解決方法 1. スクロール要素に onwheel="event.stopPropagation()"を追加

    lenis.jsでposition:fixed要素のoverflow:scrollを効かせる - Qiita
  • デザイナーにもお勧め! CSSもThree.jsもタイムライン編集を可能にするTheatre.jsが凄い - ICS MEDIA

    デザイナーにもお勧め! CSSもThree.jsもタイムライン編集を可能にするTheatre.jsが凄い ウェブサイトの演出を作る上でアニメーションの実装は欠かせません。一般的には、CSSアニメーションやJavaScriptのライブラリ(GSAPジーサップなど)を用いてコードベースで動きをつけることが多いと思います。ですが、完全にコードだけでアニメーションを調整するのは大変だと思ったことはないでしょうか? 一度実装したことがある方は共感いただけるかもしれませんが、少し直そうにもコードに戻って調整し、反映されたブラウザ画面を確認して、もう一度コードを直して…と往復していると結構大変です。また、アニメーションさせるプロパティや要素が複数ある場合には、コードを解読する難易度も上がります。 記事ではそんな悩みを解決できる、GUIからアニメーションを調整できるライブラリ「Theatre.jsシアタ

    デザイナーにもお勧め! CSSもThree.jsもタイムライン編集を可能にするTheatre.jsが凄い - ICS MEDIA
  • 滑らかなスクロール体験を! JSライブラリでお手軽に導入する慣性スクロール(前編) - ICS MEDIA

    ウェブサイトをスクロールした時に、他のサイトよりも滑らかに余韻が残るような動きを目にしたことはないでしょうか? このスクロールの挙動は慣性スクロールと呼ばれ、ウェブサイトを演出する手法のひとつです。 スクロール操作を止めた後に少し余韻が残りながらスクロールが継続することで、コンテンツをスムーズに閲覧できたり、演出と組み合わせることで世界観や没入感を表現できます。また、macOSに比べるとWindowsはデフォルトでスクロールしたときにカクカクと動くため、慣性スクロールを実装するとWindowsでもmacOSのように滑らかにスクロールさせることができます。 前編である今回の記事では、慣性スクロールを使ったウェブサイトを紹介し、簡単に実装できるライブラリ「Lenis」で実際に慣性スクロールを実装してみます。 慣性スクロールが使われているサイト 慣性スクロールはどのようなウェブサイトで使われてい

    滑らかなスクロール体験を! JSライブラリでお手軽に導入する慣性スクロール(前編) - ICS MEDIA
  • オセロ(リバーシ)を導入してみた。【暇つぶしにどうぞ】

    少しJavaScriptを書籍で学ぶ時間があったので、せっかくならということでこちらにも載せておきます。普通のオセロなので、盤上をクリックすることでコンピュータとの対戦が開始します。

  • CSSのclass名やJavaScriptの関数名を付けるときに役立つ単語リストのまとめ -Classnames

    CSSのclass名やJavaScriptの関数名を付けるときに悩んだり、ネタ切れになったことはありませんか? BEM, OOCSS, SMACSSで命名する場合はそれを使用すればよいのですが、特定のテーマ別にグループ化された単語のリストが必要になるときもあります。そんなときに役立つ単語リストをまとめたClassnamesを紹介します。 Classnames Classnamesは、CSSのclass名やJavaScriptの関数名を付けるときに便利な単語をリスト化したものです。MITライセンスで、商用プロジェクトでも無料で利用できます。

    CSSのclass名やJavaScriptの関数名を付けるときに役立つ単語リストのまとめ -Classnames
  • ブラウザの「戻る」ボタンでキャッシュが表示されてしまう際の対策 - Qiita

    はじめに 各ブラウザの「戻る」ボタンを押すと、ブラウザのキャッシュをクリアしていても、 JavaScriptでリンク遷移時にローディングアイコンをページ全体に表示 「戻る」ボタンを押す ローディングアイコンが全体に表示されたページが読み込まれる といったことが発生する場合があります。 これはキャッシュには下記の2種類あり、ブラウザバックの場合はbfcache用の対策が必要となるためです。 通常のキャッシュ(ページや画像など、ブラウザの”キャッシュを削除”で削除できるもの) bfcache(戻る/進むボタン用のキャッシュ) 確認環境 IE11 iOS7 戻るボタンで不具合が起こる理由 「戻る」ボタン用のキャッシュは、JavaScriptの処理が全て完了した状態をメモリ上に保持しています。 キャッシュとしてメモリ上の情報を読み込むことで表示を高速化しているのですが、 JavaScriptの処理

    ブラウザの「戻る」ボタンでキャッシュが表示されてしまう際の対策 - Qiita
  • JavaScript で then を使うのは避けよう(await / async の初級者まとめ)

    JavaScript において、特に苦手とする人が多い印象のある Promise ですが、await と async の文法が導入されたことで、Promise の仕様を深く理解しなくても非同期処理を自然に書けるようになってきたのではないかと思います。 極論ですが、JavaScript の非同期処理は async await new Promise のみで、(ほぼ)全て表現可能です。特別な理由がない限り then を使わないようにしましょう、ということを周知するのがこの記事の目的です。 なお記事では Promise の rejected の状態についてほとんど解説しておりません。基を理解したら、別記事でぜひ学んでみてください。 Promise とは? Promise は、少し乱暴に説明すると「実行が終わっていないかもしれない何らかの関数」を包んだオブジェクトです。 普通の関数とは違って、

  • ブラウザキャッシュの仕組みについてまとめた

    Web開発において、ページの読み込み速度は非常に重要になります。 そのためにもブラウザのキャッシュは効率的なWebサイト運営に不可欠な機能です。 ブラウザのキャッシュには次のHTTPヘッダを設定することができます。 Expiresヘッダ Cache-Controlヘッダ Last-Modifiedヘッダ ETagヘッダ これらのキャッシュには強いキャッシュと弱いキャッシュで分類が可能です。 「Expires」「Cache-Control」は強いキャッシュであり、「Last-Modified」「ETag」は弱いキャッシュに分類できます。 強いキャッシュと弱いキャッシュ 強いキャッシュは設定された期間内は完全にローカルキャッシュを利用して、サーバーへのリクエストを行いません。 一方で弱いキャッシュはキャッシュされたリソースの検証が必要であり、ETagやLast-Modifiedヘッダを利用して

    ブラウザキャッシュの仕組みについてまとめた
  • スレッドとプロセスの違いを完全に理解する

    はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、記事は 5 分程度で読み終えることができます。 記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS

    スレッドとプロセスの違いを完全に理解する
  • 【JS体操】JavaScript で頭の体操をしよう!〜第1問 44文字 解説編〜 - KAYAC Engineers' Blog

    こんにちは!カヤック面白プロデュース事業部のおばらです。 普段は受託案件、特にインタラクティブな WebGL や Canvas2D を駆使する案件のデザイン&実装を担当しています。 先日出題したJS体操 第1問目、挑戦してくださったみなさまありがとうございました! 早速ですが最短文字数の回答は 44文字 でした! export default x=>x-(x%=.2)+.2-(.04-x*x)**.5 みごと44文字を達成した方は、 halwhite さん koyama41 さん sugyan さん tkihira さん たつけん さん の5名!(※ Unicode コードポイント順) おめでとうございます!! 最短文字数を狙った正統派の回答以外にも、裏技的な面白アプローチがたくさんありました笑 このアプローチは面白い、ぜひ紹介したい!という回答がいくつかあったので、解説記事は2回に分けて

    【JS体操】JavaScript で頭の体操をしよう!〜第1問 44文字 解説編〜 - KAYAC Engineers' Blog
  • JavaScriptで要素をドラッグして移動する簡単な方法 - Qiita

    要素をドラッグして移動することは、JavaScriptにおいて頻出パターンです。 しかし、それを簡単に実現するコードは意外と知られていません。 <img id="$img" src="https://js.cx/clipart/ball.svg" width="40" height="40"> <script> $img.onpointermove = function(event){ if(event.buttons){ this.style.left = this.offsetLeft + event.movementX + 'px' this.style.top = this.offsetTop + event.movementY + 'px' this.style.position = 'absolute' this.draggable = false this.setPointe

    JavaScriptで要素をドラッグして移動する簡単な方法 - Qiita
  • MobX の使い方|npaka

    以下の記事が面白かったので、ざっくり翻訳しました。 ・MobX: Ten minute introduction to MobX and React 1. はじめに「MobX」は、シンプルでスケーラブルな、状態管理ソリューションです。このチュートリアルでは、「MobX」の重要な概念を10分で紹介します。「MobX」はスタンドアロンライブラリですが、ほとんどの人が「React」で使用しています。 2. コアとなるアイディア「状態」はアプリケーションでもっとも重要なものの1つです。一貫性のない状態や、ローカル変数と同期していない状態は、不具合の多い管理不可能なアプリケーションを生み出します。 多くの状態管理ソリューションは、状態を変更できる方法を制限しようとします。しかし、これは新しい問題を引き起こします。データは正規化する必要があり、参照の整合性は保証されなくなり、プロトタイプなどの強力な概

    MobX の使い方|npaka
  • detailsタグのアニメーションについて - もぐもぐ食べるおいしいWebデザイン。 - もぐでざ

    WordPress6.3でも実装されたdettailsタグ。 これはdetailsのSummaryタグ。 detailsのここが中身。 ↑こんな感じで開閉がCSSやJSを使わずに簡単に実装できる。 しかもアクセシビリティ面も配慮されているのがありがたいところ。 ただ、アニメーションをつけようとすると途端に難易度が上がっちゃう。 いろいろ調べてたどり着いた内容を残しときます。 CSSだけで実装 いちおうCSSだけでアニメーションをつけることは可能。以下は参考コード。 ※こちらの記事を参考に作成しました 属性「open」が付いたときに、animationを使って微妙に位置をずらす+フェードインを使って動きを付けてる。 JSを使わない実装をする場合はこの方法が現状の最適解かな。 ただ、閉じる際にアニメーションが効かない上に、高確率でアニメーションが効かない…。 もう少ししっかり動きをつけたい…。

    detailsタグのアニメーションについて - もぐもぐ食べるおいしいWebデザイン。 - もぐでざ
  • HTML, CSS, JavaScriptの標準の仕様書はどこにあるのか

    HTML HTMLの仕様策定には複雑な歴史があります。詳細は他の解説記事に譲りますが、簡単に述べるとW3CとWHATWGのダブルスタンダード状態が長い間続いていました。2022年現在はWHATWGによってLiving Standardとしてまとめられた仕様が実質的な標準となっています。Living Standardという名前が示す通り、バージョンはなくエディターによって随時更新されています。 CSS CSSの仕様はW3Cが策定しています。現在は、CSSとして1つの標準仕様があるわけではなく、数多くのモジュールに分かれて標準仕様の策定が進められています。草案、勧告候補などを経て勧告に至るプロセスと、Levelという概念で整理されたバージョン管理が特徴です。年に1度、SnapShotとしてその時点での標準化の概況が公開されています。 JavaScript JavaScriptは主にWebブラウ

    HTML, CSS, JavaScriptの標準の仕様書はどこにあるのか
  • 【JavaScript】読みやすいコードの書き方 - Qiita

    はじめに 私は他人のコードをレビューしたことも自身のコードを他人にレビューしてもらったこともない初学者として現在のプロジェクトに加わりました。そこから現在までの2年間毎月10から20ほどのプルリクエストをレビューし、またチームメンバー内で読みやすいコードについて議論することで、徐々に読みやすいコードを書くためのポイントが掴めてきました。 これらの経験を通じて、私が現在考えている読みやすいコードを書くためのポイントを記事にまとめていきます✍️ 前提 言語はJavaScriptで、レガシーな環境での手続き的なJavaScriptを想定しています。 「JavaScriptの文法やメソッドは理解してきたけど、より読みやすいコードの書き方がわからない」と感じている初学者向けです。 筆者は一般的なコーディング規約や設計原則についての書籍や資料をほとんど参照していません(読んだことがあると言えばリー

    【JavaScript】読みやすいコードの書き方 - Qiita
  • 【JavaScript】アニメーションの処理負荷を軽減する | Web production note

    単体のアニメーションだとそれほど気にならない場合でも、表示範囲の中で複数のアニメーションが同時に走ったりする場合、負荷が増大して処理落ちなどを起こすことがあります。 レンダリング負荷を軽減するため試行錯誤をしたので、備忘録もかねて実施した内容をまとめました。 可読性や保守性など、よりクリーンなコードを目指す場合は不適切な書き方があるかもしれません。 コードは参考程度に見ていただき、各自の環境でデバッグのうえより適切なコードを選択していただければと思います。 パフォーマンスパネルでデバッグ今回はChromeのパフォーマンスパネルで検証をしました。 パフォーマンス計測後の詳細からJSファイルを参照すると、具体的な実行時間まで表示されるため重たい処理の特定に非常に重宝しました。 パフォーマンスパネルの使い方の詳細は以下をご参照ください。

    【JavaScript】アニメーションの処理負荷を軽減する | Web production note
  • 【JavaScript】共通パーツをインクルード化!効率よくコーディングする方法 | Web Note

    このように、共通パーツをインクルードすることで、同じHTMLコード何度も書く必要がなくなります。 変更や修正の際も1箇所の変更だけで済むので、保守性が上がり作業時間の短縮にもつながります。 必要なキャッシュはブラウザの方で保存してくれているので、他ページに遷移した時に読み込み速度も向上します。 インクルードの方法 ここからは実際に共通パーツをインクルードする方法について紹介します。 今回はJavaScriptを使用し、例としてheaderfooterをインクルード化していきます。 ファイルを用意 まずは必要ファイルを作成します。 表示するindex.html、インクルードするファイルをまとめるinclude includeの中にheader.htmlfooter.html インクルード処理を記述するmain.jsをjsに作成しています。

    【JavaScript】共通パーツをインクルード化!効率よくコーディングする方法 | Web Note
  • JavaScript でオーディオプレーヤーやプレイリストを作成

    HTML .audio-controller を指定した div 要素で全体をラップし、その中に audio 要素とコントロールを配置します。audio 要素には controls 属性を指定しません。 ボタンは type="button" の button 要素にクラスを指定して識別し、再生位置とボリュームは type="range" の input 要素(レンジスライダー)にクラスと name 属性を指定して識別します。 この例の場合、ボタンのテキストが幅をとってしまうため、2段で表示しています。 HTML <div class="audio-controller"> <audio src="sample.mp3"></audio> <div class="controls"> <div class="row"> <button class="toggle" type="button"

  • JavaScriptデザインパターン入門 - Qiita

    1. はじめに JavaScriptデザインパターンは、JavaScriptを使ってプログラムを書くときによく出くわす問題を解決するためのガイドです。これらのパターンの背後にある考え方を理解することで、自分の問題に適用することができます。また、これらのパターンが自分のコードに役立つ場合を見つけることもできます。 2. モジュールパターン モジュールパターンは、JavaScriptのモジュールシステムの一部で、データを保護する方法を提供します。これは、モジュール内のプライベートなデータと動作を保護し、一方で公開APIを提供する方法です。これにより、プライベートとパブリックのアクセスレベルを持つ自己完結型のモジュールオブジェクトを作成することができます。 これは、JavaC++のような言語でクラスにアクセス修飾子を使用するのに似ています。 JavaScriptでは、クロージャを使用してモジュ

    JavaScriptデザインパターン入門 - Qiita