タグ

domに関するpipeheadのブックマーク (81)

  • Custom Elements v1で独自のHTML要素を定義する

    HTMLを書く上で一番よく見かける要素は何でしょうか。それはおそらくdiv要素でしょう。大量に散らばったdiv要素は、もはやHTMLではありふれた光景となっています。しかし見た目が美しくありませんし、マークアップ的にも推奨できる行為ではありません。 そこで現れたのがCustom Elementsです。Custom Elementを使用すれば、独自の要素を定義することができ、マークアップがわかりやすくなります。この記事では、Custom Elementsについて簡単に解説します。 Web ComponentsとCustom Elements Web Componentsは以下の4つからなる規格です。 Templates Shadow DOM Custom Elements HTML Imports 今回はこのうちCustom Elementsに焦点を当てていきます。 独自要素を定義するCus

    Custom Elements v1で独自のHTML要素を定義する
  • 私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | POSTD

    <script src="//typekit.com/fj3j1j2.js"></script> <!-- This second script won’t execute until typekit has executed, or timed out --> <script src="//my.site/script.js"></script> ローカルスクリプトとリモートスクリプトを組み合わせても同様に操作することができます。 機能的には、Webページの前の部分で重いスクリプトのロードがあると、サイトの表示が明らかに遅くなることを意味します。さらに、ページの最後の方で表示されるスクリプトは、それまでに存在するされたスクリプトの動作に依存することを意味します。 先行する全てのscriptタグがロードされ実行されるまで、ページ上の要素は表示されません。つまり、パフォーマンスへの悪影響を覚

    私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | POSTD
  • Shadow DOM v1でHTMLの内容と構造を分離する

    近年ではウェブに対する要求が肥大化しており、それに対応してHTMLも複雑化してきています。しかし、もともとHTMLはウェブアプリを記述するための言語ではありません。大規模なウェブアプリを作成するとなると、様々な点で不都合が出てきてしまいます。特に、まとまった部品をコンポーネント化して扱う機能に欠けていました。このことが私たちを悩ませ、今まで多くの苦労を引き起こしていました。 でも、もう悩まなくてもよくなるかもしれません。HTMLをコンポーネント化する規格が生まれました。それがWeb Componentsです。 Web ComponentsとShadow DOM Web Componentsは次の4つの部分からなる規格です。 Templates Shadow DOM Custom Elements HTML Imports 今回は、このうちのShadow DOMに焦点を当てていきたいと思いま

    Shadow DOM v1でHTMLの内容と構造を分離する
  • You Don't Need jQuery - Qiita

    注意とお願い この記事の内容はもはや古いです。ここに書いている方法では動かないものをいくつか見つけました。参考にする際は動作をよく確認してから使ってください。 ひとつお願いがあります。「あれ、動かないぞ」というコードを見つけたら是非コメントか編集リクエストで教えてください。解決方法までなくても結構です。「これはもう動かないよ」という印をつけたいのです。 この記事はYou Don't Need jQueryの日語訳と同じ内容です。 先日ひょんなことからYou Don't Need jQueryの日語訳をさせていただきました。著者のCam Songさんからも快諾をいただけたので1、Qiitaでも公開させていただきます。 なお、家の英語の説明は継続的にメンテされているので、この記事の情報は古くなっている可能性があります。 追記 この記事は当初は「もうjQueryは必要ない」というタイトルで

    You Don't Need jQuery - Qiita
    pipehead
    pipehead 2016/04/12
    /* https://github.com/oneuijs/You-Dont-Need-jQuery の和訳 */ > jQueryでの書き方の代わりとなるネイティブでの書き方(IE10以上)をまとめます。
  • jQueryのイベントハンドラ内でのpreventDefault()、stopPropagation()、stopImmediatePropagation()、return falseについて - Qiita

    jQueryのイベントハンドラ内でのpreventDefault()、stopPropagation()、stopImmediatePropagation()、return falseについてJavaScriptjQuery

    jQueryのイベントハンドラ内でのpreventDefault()、stopPropagation()、stopImmediatePropagation()、return falseについて - Qiita
    pipehead
    pipehead 2016/02/03
    > return falseを実行した場合はpreventDefault()とstopPropagation()が実行される
  • window.onloadとjQueryの$(document).ready等の比較

    Comparison of window.onload and jQuery's $(document).ready B! 39 0 0 0 JavaScriptでページを読み込み後に何かを行いたいときは window.onload = function()を使ったり、jQueryを使っていれば $(document).ready(function())を使ったりしますが、 これらはちょっと違うものです。 特にjQuery無しで$(document).ready(function)的な事をするのが ちょっと面倒ですがその辺について。 window.onload $(document).ready jQuery無しで$(document).readyな呼び出しをする onload時に行う物を複数登録する 実行される順序 window.onload window.onloadメソッドはonlo

    window.onloadとjQueryの$(document).ready等の比較
    pipehead
    pipehead 2015/07/11
    > window.onloadメソッドはonloadイベント発生時に実行されますが、 これはDOMツリーの構築だけでなく、画像や他の全てのデータの 読み込みが完了した時、になります。
  • rangeとselectionを使ってtextarea・WYSIWYG用iframe等のテキスト・HTMLを取得・置換する方法まとめ [無料ホームページ作成クラウドサービス まめわざ]

    Javscriptの開発において、1つ大きな障害となるのはクロスブラウザです。その中でも、rangeやselection関連のクロスブラウザ対策には辟易します。 毎度検索エンジンで調べている気がしたので、今回はこれらをまとめてみようと思います。 jQueryの利用を前提としていますが、限定的な利用なので、例えば$("textarea")[0]はdocument.getElementsByTagName("textarea").item(0)などで置き換えらえます。DOM要素を指定している個所は、利用シーンに合わせて変換してご利用ください。

    rangeとselectionを使ってtextarea・WYSIWYG用iframe等のテキスト・HTMLを取得・置換する方法まとめ [無料ホームページ作成クラウドサービス まめわざ]
  • MutationObserver - †MASAYOSHI†のオンラインメモ帳

    DOMNodeInsertedは非推奨なのでMutationObserverを使うのが正しいあり方ではあるがどうもいまいち分かりにくい。と言う訳でちょっとネタがてらまとめておこうというエントリ。情報元は例によってMozillaさん。 まずはsampleを見てみよう。 // 対象ノードを選択 var target = document.querySelector('#some-id'); // オブザーバインスタンスを作成 var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { console.log(mutation.type); }); }); // オブザーバの設定 var config = { attributes: true, childList

    MutationObserver - †MASAYOSHI†のオンラインメモ帳
  • JavaScript 大量の要素をDOMに追加する際の、createDocumentFragmentの使い方。 - Qiita

    大量の要素を挿入するときに、 毎回DOMにアクセスするとパフォーマンス的によろしく無いので createDocumentFragment を使おうという教えを頂いたのでまとめです。 聞いた事あるけどよくわからんという方も多いのではと思います。 ;(function(){ var $ul = document.querySelector('#list'); // ul要素 var songs = ['終わらない歌', 'キスしてほしい', '僕の右手', '情熱の薔薇', '人にやさしく']; // もっと沢山要素がある想定でお願いします〜 // 低速バージョン // 毎回DOMツリーへの更新が発生 for(var cnt=0, len=songs.length; cnt<len; cnt++){ var $li = document.createElement('li'); var son

    JavaScript 大量の要素をDOMに追加する際の、createDocumentFragmentの使い方。 - Qiita
  • scrollIntoView :: 任意のElement位置まで画面をスクロールさせるメソッド - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    scrollIntoView :: 任意のElement位置まで画面をスクロールさせるメソッド - Qiita
  • JavaScript で DOM 要素の絶対座標を取得する方法 - tmlife

    備忘録. スペニット的に使ってもらえれば幸いです. DOM 要素の絶値座標を取得する element.scrollTop とかだと親からの相対値になっちゃいます. getBoundingClientRect() を使えば絶対座標を取得できます. window.onload = function() { var element = document.getElementById('hoge'); // hoge というIDがついたやつを取得する var rect = element.getBoundingClientRect(); console.log(rect.left); // x座標(絶対座標) console.log(rect.top); // y座標(絶対座標) console.log(rect.width); // 幅 console.log(rect.height);

    pipehead
    pipehead 2015/01/14
    getBoundingClientRect()
  • リアルな DOM はなぜ遅いのか - steps to phantasien

    これは VirtualDOM Advent Calendar 2014 に勝手に参加する記事です。 あたたかい春の昼下がりのこと、あるブラウザベンダの社内を不穏な噂が駆け巡った。 「React.js なるライブラリ、どうも仮想 DOM というやつのせいで速いらしいぞ」 もうリアルな DOM はお役御免、ブラウザも商売上がったりか・・・。雇用に不安を覚える人(私)がいる一方、 そのアイデアをとりこんでブラウザの DOM を速く出来ないかと考える人たちもいた。 仮想 DOM はなぜ速いのか。誰かのつてを辿って React.js チームにおいでいただき、速さの秘密をテックトークしてもらう。 イミュータブルなデータ構造による単純化、非同期適用による処理のバッチ化、差分アルゴリズムによる副作用の最小化… いくつかのアイデアはブラウザからはどうにもならないが、たとえば非同期化なんかは形は違えどブラウザ

  • JavaScript loadイベントの実行順序 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは。寺岡です。 この記事は TECHSCORE Advent Calendar 2014 の 8 日目の記事です。 今回はJavaScript のload関連イベントにおける実行順序について書きます。 調査するきっかけ ある日、以下の要件を満たすリダイレクタを作成する必要に迫られました。 「リダイレクト実行時に、とある外部JavaScriptを実行しアクセス解析などを行いたい」 当初、あまり深く考えずに二つ返事で頷いてしまったのですが、検討を開始してみると色々考慮事項が多くて大変でした。 そして、未だにベストな解決ができた気がしていません。 稿では三十路が迫ったおっさんエンジニアの苦悶の記録をお送りします。 リダイレクトを実行する方法のおさらい まずは、リダイレクト(的な動作)をさせる方法を一通り考えて見ます。 大きく分類すると、以下の3種類になるでしょう。 HTTPのステータス

    pipehead
    pipehead 2014/12/08
    > JavaScriptのイベントハンドラの呼び出し順序はブラウザによって違う
  • Custom Elements - Web Components を構成する技術

    この記事は webcomponents.org の記事とのクロスポストです。 HTML は言うまでもなく、ウェブページを構成する最も重要な要素です。しかし、提供される機能が低レベルなため、複雑なコンポーネントを作ろうとすると、途端に div だらけの分かりにくい構造になってしまいがちです。例えば、あなたが必要な機能を盛り込んだ独自のコンポーネントを作れるとしたらどうでしょう?例えばそのコンポーネントに、機能を的確に表すタグ名を付けられるとしたら?既存のタグを拡張して、新しい機能を追加できるとしたら? Custom Elements は、それを可能にします。 Custom Elements とはなにか? # Custom Elements は開発者が独自に HTML タグを定義し、サイト上で利用できるようにすることで、繰り返し利用されるコンポーネントを単純化し、再利用する手間を大幅に削減しま

    Custom Elements - Web Components を構成する技術
  • Shadow DOM - Web Components を構成する技術

    この記事は webcomponents.org の記 事とのクロスポス トです。 Shadow DOM を利用すると、DOM 要素に、ウェブページの他の部分とは切り離された、 ノード内だけで有効なスタイルやマークアップを含んだ DOM ツリーを追加することがで きます。この記事と動画では、この Shadow DOM について解説します。 Shadow DOM とはなにか? # こちらは HTML5 の video タグで表示された動画です。ご覧頂けるとお分かりのように、 コードは video タグのみという単純さでありながら、動画そのものだけでなく、制御用 の UI も表示することができています。 <video src="http://craftymind.com/factory/html5video/BigBuckBunny_640x360.mp4" controls></video>

    Shadow DOM - Web Components を構成する技術
  • Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita

    もうなんかこの際マジで言わせていただくんですけど、知ってるか知らないか分かりませんが世の中にはすごい頻度で呼ばれうるDOMイベントって言うのがいくつかあるわけですよ 例えば scroll mousemove, touchmove devicemotion 辺りですよ。 で、高頻度で呼ばれるって言うことは必然的に処理量が増えるって分かりますよね?????while(1) {}じゃないとはいえUIスレッドに十分影響を与えうる頻度で呼ばれる訳です。分かりますよね???????? そうなると当然そのイベント内で重い処理を行えば人間が認識できるレベルでのレスポンス遅延が起きるっていうのはご理解できますよね? 重い処理っていうのはまぁ想像出来るとは思うんですが例えばよくあるのが DOMのレイアウトプロパティへのアクセス offsetTop、offsetLeft、offsetWidth、offsetHe

    Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita
  • 【JavaScript】 MutationObserverの使い方 個人的まとめ - はりをきば

    DOMの変更を検知するイベントが非推奨になり 代わりに新しく作られたMutationObserverなるもの。 MutationObserver - Web API インターフェイス | MDN https://developer.mozilla.org/ja/docs/Web/API/MutationObserver DOM変更検知は結構よく使うもの(特にユーザースクリプト)なのに 日語の解説サイトが↑のMDNとMSDN、ここくらいしかなく その都度ググったり手探りで片っ端から試すのが面倒なので以下に自分用にまとめる。 コンストラクタ まずインスタンスを作る。 window.MutationObserverコンストラクタの引数に、DOM変更を検知した際に実行する関数を渡す。 function omega(data1, data2) { alert("ワレハメシアナリ"); consol

    【JavaScript】 MutationObserverの使い方 個人的まとめ - はりをきば
  • Webページレンダリングについて知っておくべきこと: ピクセルは高コスト | POSTD

    Web開発者として、ユーザの画面表示にピクセルがどのように関わるのかということは知っておくべきでしょう。知ることが目的なわけではなく、効率性のため画面表示を最適化する際にその知識が必要となってくるからです。 先日、「 フロントエンド開発者がWebページレンダリングで知っておくべきこと 」を読んだのですが、重要なポイントを外してしまっている印象を受けました。その記事で強調されていたのは、CSSセレクタのマッチング、レイアウト(FirefoxのようなGeckoベースのブラウザではリフロー)、そして レイアウトスラッシング という名でも知られる強制同期レイアウトに注意することです。確かに、これらは気をつけたほうがいいことだとは思いますが、私としては、ページレンダリングについて開発者が知っておくべきことをその記事ですべてカバーしていたとは思えません。大抵の場合、Web開発者は60fpsの表示を目指

    Webページレンダリングについて知っておくべきこと: ピクセルは高コスト | POSTD
  • DOMイベントのキャプチャ/バブリングを整理する 〜 JSおくのほそ道 #017 - Qiita

    こんにちは、ほそ道です。 今回はDOMネタです。 イベントのキャプチャとバブリングについて覚書をまとめて参ります。 また今回はv8での検証であり、レガシーなIEは対象外です。 レガシーなIEはイベント設定メソッド自体が違いますのでご注意くださいませ。 目次はこちら 入れ子なDOMのイベント発生順序制御 DOMが入れ子構造になっていてそれぞれにイベント(例えばClickイベント)が設定されていた場合 「このように動いてほしい」という期待はケースバイケースであると思います。 期待通りの処理になるようカッチリ制御しちゃいましょう。 addEventListenerの第三引数「useCapture」 例えば下記の様なHTMLがあったとします。 body内にdivが入れ子になっておりそれぞれにClickイベントが登録されています。 <html> <head lang="en"> <meta char

    DOMイベントのキャプチャ/バブリングを整理する 〜 JSおくのほそ道 #017 - Qiita
    pipehead
    pipehead 2014/07/25
    /* キャプチャフェーズ -> ターゲットフェーズ -> バブリングフェーズ */ > 外側要素のuseCaptureをtrueにしてしまうと キャプチャフェーズで外側要素のイベントが実行され、そこでイベント伝播を止めてしまいます
  • [フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう - YoheiM .NET

    [フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう こんにちは、@yoheiMuneです。 ブラウザのレンダリングの仕組みはHTML5 RocksやHow browsers workで詳しく解説されてきました。しかしそれらはとても詳細で、読破して理解するのは大変です。 今回のブログでは手軽にレンダリングの概要を理解できるように心がけました。またより詳しく学べるようなリンクも記載しました。 そしてブラウザのレンダリングの仕組みを理解した上で、どのようなJavaScriptを書くべきかについても記載しました。 目次 ブラウザのレンダリングの仕組み この章では、HTMLCSSが読み込まれてから画面に表示されるまでの間に、ブラウザがどのような処理を行っているかを説明します。 ファイル読み込みから表示までの一連の流れは以下図の通りです。 [1]

    [フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう - YoheiM .NET