ウェブフロント
- angular
- corewebvitals
- editorconfig
- gatsby
- hls
- html
- javascript
querySelectorAllで取得した要素は配列ではないらしい
JavaScript 配列内のオブジェクトの更新ってどうする?
デバッグ関数とかnullチェック関数をutil/index.tsにおいとけば楽なことに今頃気づいた。
ブラウザからジャイロセンサーを使ってみる
JS 画像のアップロード、プレビュー機能を実装
「数値から各桁の値を取り出す処理」って言われたら数学的な処理が一番に思い浮かぶけど、JSならそんなことなかった。
Callback時代の関数をPromise化する
個人的実装されてほしいECMA Script Proposal
JavaScriptのprototypeを使う
音声をなみなみさせる
AudioWorkletとAudioWorkletProcessorを使って音声のビジュアライゼーション
- next
- nuxt
- playwright
- prettier
- react
- reactnative
- tensorflowjs
- tools
- typescript
- wasm
- websocket
- ポエム
- 開発環境
サーバー
その他
Tips
画像のアスペクト比をいいかんじにする
const containerRef = useRef<HTMLDivElement>(null);
useEffect(() => {
// アスペクト比を計算
const image = new Image();
image.src = `${process.env.NEXT_PUBLIC_S3_DOMAIN}/${content.assetKey}`;
image.onload = () => {
const imageWidth = image.width;
const imageHeight = image.height;
const imageAspect = imageWidth / imageHeight;
const containerWidth = window.innerWidth * 0.8;
const contaierHeight = window.innerHeight * 0.8;
const containerAspect = containerWidth / contaierHeight;
let newWidth: number;
let newHeight: number;
if (imageAspect > containerAspect) {
newWidth = containerWidth;
newHeight = containerWidth / imageAspect;
} else {
newHeight = contaierHeight;
newWidth = contaierHeight * imageAspect;
}
containerRef.current?.style.setProperty('width', `${newWidth}px`);
containerRef.current?.style.setProperty('height', `${newHeight}px`);
};
}, [content]);
dayjs
import dayjs from 'dayjs';
import 'dayjs/locale/ja';
import utc from 'dayjs/plugin/utc';
import isSameOrAfter from 'dayjs/plugin/isSameOrAfter';
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
import relativeTime from 'dayjs/plugin/relativeTime';
dayjs.extend(utc);
dayjs.extend(isSameOrAfter);
dayjs.extend(isSameOrBefore);
dayjs.locale('ja');
dayjs.extend(relativeTime); // 相対日付
export const getRelativeDateByStartAt = (startAt: number) => {
return dayjs.unix(startAt).fromNow();
};
Thanks you for reading.