Reactで、指やマウスで手書きできる署名欄を作る方法
canvas と Pointer Events で、マウスでも指でも書ける署名欄を React で作りました。線を点の配列で持って描き直す作りにし、画面の倍率、幅の変化、枠の外へのはみ出し、スクロールとの取り合い、画像への書き出しを確 ...
Reactで、長い文章を「続きを読む」で折りたたむ方法
長い文章を3行で切って「続きを読む」ボタンで広げるコンポーネントを TypeScript で作りました。行数で切る CSS、はみ出したときだけボタンを出す測り方、隠れた部分のリンクに Tab で入ったときの対策を Chromium で ...
Reactで、右クリックしたときに独自のメニューを出す方法
右クリックした位置に独自のメニューを出すコンポーネントを TypeScript で作りました。ブラウザのメニューの止め方、画面の端で反対側に開く計算、閉じる処理、Shift+F10 と矢印キーでの操作を Chromium で確かめてい ...
Reactで、要素を全画面表示に切り替える方法
ボタンを押すと、グラフなどの要素を全画面で表示し、もう一度押すと元に戻すフックを作りました。Esc キーで抜けたときに表示がずれない状態の持ち方、クリックから時間がたつと拒否される条件、全画面の中でポータルが見えなくなる点も確かめてい ...
Reactで、元に戻す・やり直すの機能を作る方法
過去・現在・未来の3つに分けて状態を持つ、useReducer を使ったフックで、元に戻す・やり直すを作りました。Ctrl+Z などのショートカット、入力欄でのブラウザの「元に戻す」との分け方、更新の書き方で履歴が壊れる例も確かめてい ...
Reactで、画像をドラッグして切り抜く方法
画像の上で範囲をドラッグして選び、その部分を PNG に切り抜く仕組みを、ライブラリを使わずに React で作りました。setPointerCapture と draggable=”false” が要る理由と ...
Reactで、表のデータをCSVファイルとしてダウンロードする方法
画面に出している表のデータを、ボタン1つで CSV ファイルとして保存させる方法です。値の囲み方、Blob と a 要素の download 属性での保存、BOM、数式として読まれる値への備えを、保存されたファイルの中身で確かめました ...
Reactで、+と−のボタンで数量を変える入力欄を作る方法
+と−のボタンで数量を1ずつ変え、入力欄に直接打つこともできるコンポーネントを React で作りました。上限・下限でのボタンの止め方、打っている途中の文字列の扱い、キーボードでの操作と読み上げ用の output の中身を、検証環境で ...
Reactで、色を選ぶ入力欄を作る方法
React で色を選ぶ入力欄を、input type=”color” と state で作りました。値が小文字の「#rrggbb」で読み出されることや onChange が呼ばれる回数、カラーコード欄と色のボタ ...
Reactで、2つのつまみで範囲を選ぶスライダーを作る方法
価格の下限と上限を2つのつまみで選ぶスライダーを、input type=”range” を2つ重ねて React で作りました。つまみだけがクリックを受ける CSS と、重なったつまみが動かせなくなる問題の直し ...
