JavaScript
web.dev VirtualScrollはパフォーマンスめちゃ上がるらしい。けどなんだ仮想スクロールって。 qiita.com つまり、見えている範囲だけスクロールイベントを起こす、のようなものらしい
qiita.com teratail.com scrollイベントを動かしたいが、目的達成したら消したい。で、また目的が出来たら動かしたい。 const closeFunc = () => { isOpened = false; // NOTE: scrollイベントを消す target.removeEventListener("scroll", closeFunc); }; t…
一番ありそうな場面は、 テーブルで、左列がstickyで固定されていて、2列目以降がスクロール出来るやつ。縦に長いテーブルだと横スクロール出来る入力デバイスを持っていないとスクロールバーをクリックしないとスクロール出来ないので操作がかなりめんどく…
たいへんお恥ずかしながら。JSDocってつい最近知りました。 ReactでPropsの説明を type Props = { /** 名前 */ name: string } みたいに書くとコンポーネント使う際にPropsに説明が出たりします。あとStorybookでコンポーネントのPropsの説明が出る。 っての…
qiita.com 普通はMath.roundだけでOK。
qiita.com qiita.com このリンク見ればわかる。mapはよく使うよね。someは初めて知った。
qiita.com Reactでmapで繰り返しする場合keyを指定する必要がある。 なにも考えずに、よく array.map((item, idx) => { return ( <item key={idx}> のようにやっていました。なんかもう、keyにはindexを入れるものだと。 そしたらレビューでkeyはindexじゃなくて、この場合な</item>…
sbfl.net sbfl.net 恥ずかしながらまだあまり非同期処理を使いこなせず…1回だけ書きましたがなんかうまくいった…という感じなので…次やる時また参考にしたい気持ちです
hepokon365.hatenablog.com IEではclassListで使えない機能があります。 代表的なのがtoggleとか。 で、今回引っかかったのが const a = b.classList.value.replace(/-/g, '').split(' '); で、IEで未定義またはNULL参照プロパティ'replace'は取得できません…
JavaScriptをES5で書かざるを得ない場面があり、でもnodelistに対してforEachを使いたいので if (window.NodeList && !NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; } と書いて使っている時がありました。 で、先…
JavaScriptの「&&」「||」について盛大に勘違いをしていた件 - Qiita const _perview = Number($body.getAttribute('data-perview')) || 'auto'; えっなにこれ、って思ってた。 Number($body.getAttribute('data-perview'))がtrueであればNumber($body.getAt…
qiita.com これを読んで。最適化とか表示早くするのが特に必要なものならここらへんのチューニング必要なのかもしれないなーと思い調べてみようと決意。ちなみにこれ書いてる現状はなにも知らない。 JavaScriptの非同期読み込み qiita.com 全然気にしたこと…
www.npmjs.com github.com webpack-route-data-mapperというのを案件で使っていた。 まあ良い感じにファイルの指定を出来るようになるプラグインだと理解している。これをpug-loaderに流し込んでいたはず。jsonファイルをpug-loaderに流し込んでその情報に基…
IE11で使えないんですよねーclosest。 なので、 getParent($current, cls) { let $target = $current.parentNode; while ($target.tagName !== 'BODY') { if ($target.classList.contains(cls)) { return $target; } $target = $target.parentNode; } } 「現…
JavaScriptで特定の要素を複製(コピー)する方法|今村だけがよくわかるブログ Node.cloneNode() 例えばスライダーのページネーションとか。1つだけHTML上に作っておいて、あとは複製するとかできる。 _set() { for (let i = 0; i < this.length - 1; i++) …
developer.mozilla.org これでURLを取得しエンコード const url = encodeURIComponent(location.href); blog.maromaro.co.jp tsudoi.org getTwitterUrl(url) { return `https://twitter.com/share?${url}`; } みたいな感じ 追記。Pinterestはシェア対象の画…
qiita.com Lodashは配列操作とかで便利な関数を提供してくれるライブラリ。 import _ from 'lodash'; として _.forEach のようにして使える。このやり方ならlodashを全部読み込んでいる。 import { forEach } from 'lodash'; この書き方なら、lodashのforEac…
window.open JSでwindow.openとやるとウィンドウをポップアップで出せます。 また、hrefにそのウィンドウのURL入れるとおもうんですけど普通にやるとポップアップも出すのと同時に遷移しちゃうので、その動作自体の無効化が必要です。 aタグの無効化 - preve…
知らなかった。会社のチャンネルで投稿されていて知った。言われてみればそりゃこういうのは全部ライブラリあるよね。 Webブラウザの種類やバージョンを判別するJSライブラリ「bowser」 lancedikson/bowser ・ブラウザ名 ・OS ・デバイス(PCかタブレットかS…
matchMediaを使うとCSSとほぼ同じような書き味でメディアクエリを書けます。 が、CSSのようにデバイス幅をいつでも取得してるわけじゃない(そう書けばそう書けますが)ので、PCSPの切替時にイベントを起こせません。 と思ったら、matchmediaでaddListerを使…
SizedImageというComponentでspOnlyというPropsにtrueを渡す <SizedImage spOnly={true} filename={'about/history/img-logo.png'}></Image> SizedImageのComponentを定義 export default class SizedImage extends React.Component { render() { return( <Container spOnly={this.props.spOnly}> <Image filename={this.props.filename}><…</image></container>
原因は確かじゃないのであれなのですが。まあ備忘録として。メモです。 Swiperっていうスライダーを簡単に作れるライブラリ。 あれで自動再生して、サムネイル機能もつけて、ってのを作ったのですが。 たまにSwiperがエラー起こして自動再生が止まってしまう…
これがIEとSafariでは効かない。 window.scrollTo({ top: 100, behavior: 'smooth' }); 正確に言えばbehaviorが効かない。CSSのscroll-behaviorも同じく。 jQueryでanimateさせればよかったかもしれないが、今回はPolyfillで解決。 scroll-behavior-polyfill…
gatsby develop -H 0.0.0.0 で、いける。 これで自分のIPアドレスに他端末からアクセスしたら検証出来ます。
qiita.com qiita.com とにかくデバッグてきなことしたいときは console.log これでコンソールのログを出す、これしかないと思っていました。 なにかの拍子に、会社のマネージャーに 「console.infoとかでエラー挙動のときはエラー文出すようにしたほうがいい…
github.com これめちゃめちゃ見ます。参考になります。 jQueryでHTMLのクラス取得するなら、普段なら const $tabItem = $('.tabItem') みたいにやりますよね。 で、例えばこのクラス全体に同じ挙動を実行させたい。例えばクリックイベントを起こしたいなら、…
こんな感じでタブで選んで中身のコンテンツを入れ替えたい。 わかりづらいがこの上がタブで、下がコンテンツ。 しかも、そのタブは上下にあり、どちらでも中身のコンテンツを入れ替えられる。 ↓下 つまり、 こういう感じ。 で、問題なのは、 ・このコンテン…
slick - the last carousel you'll ever need なんと、初期設定で、 pauseOnFocusとpauseOnHoverがtrueになっている。 なので、初期設定ではそのスライダーにフォーカスした時(フォーカスした時ってなんなのですかね、ホバーとなにが違うのか)と、スライダ…
www.websuccess.jp この記事が参考になる。 .header { position: fixed; top: 0; min-width: 1000px; } みたいに固定されててmin-width指定してあると、min-width下回ると普通のコンテンツは横スクロール出来るが、fixedのコンテンツは出来ない。なので、fix…
当たり前かもしれないけど、上手く動かないときのエラーを見つけるの、明確なエラーとか出てなかったらどうしようもないんですよね。 最近だとjson読み込んでJavaScriptで生成する部分があったのだけど、そこでうまくいっていないのか、その生成をスライダー…