検索
ホームページウェブフロントエンドhtmlチュートリアルBootstrap ソース コード分析ツールチップ、ポップオーバー

1. ツールチップ (プロンプトボックス)

ソースコードファイル:

Tooltip.js
Tooltip.scss

実装原理:

1.ツールチップ要素の位置情報 (上、左、下、右、幅、高さなど) を表示するには
2. ツールチップの位置 (上、左、下、右のいずれか) を計算します。 right
3. 次に、計算位置の値に従って、座標値を計算します
4. 座標値をツールチップに適用します

ソースコード分析:

1. ownerDocument: document; 2 つのオブジェクトが含まれます: 、documentElement (ルート ノード)
2. $.contains(domA, domB): domA に domB 要素が含まれているかどうかを判断します
3. offset.setOffset メソッドが適用され、 offset が値を設定するとき、四捨五入ができないため、パラメータが渡されます
4. $viewport: Tooltipr のコンテナ要素を表示します
5. getPosition: この関数は、要素の位置座標に関連する情報を取得します。として: 上、左、下、右、幅、高さ、スクロールなど。
5.1. getBoundingClientRect メソッドは共有されますが、IE8 の場合、このメソッドは幅と高さ
をプラグインします。ボディの幅と高さはウィンドウの
にリセットされます。 5.3. ソース コードは次のとおりです:

$element   = $element || <span style="color: #0000ff">this</span>.$element <span style="color: #008000">//</span><span style="color: #008000">如果没有传入参数,则以$element(触发tooltip事件的元素)为准</span>

    <span style="color: #0000ff">var</span> el     = $element[0<span style="color: #000000">]
    </span><span style="color: #0000ff">var</span> isBody = el.tagName == 'BODY'

    <span style="color: #0000ff">var</span> elRect    =<span style="color: #000000"> el.getBoundingClientRect()
    </span><span style="color: #0000ff">if</span> (elRect.width == <span style="color: #0000ff">null</span><span style="color: #000000">) {
      </span><span style="color: #008000">//</span><span style="color: #008000"> width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093</span>
      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom -<span style="color: #000000"> elRect.top })
    }
    </span><span style="color: #0000ff">var</span> elOffset  = isBody ? { top: 0, left: 0<span style="color: #000000"> } : $element.offset()
    </span><span style="color: #0000ff">var</span> scroll    = { scroll: isBody ? document.documentElement.scrollTop ||<span style="color: #000000"> document.body.scrollTop : $element.scrollTop() }
    </span><span style="color: #0000ff">var</span> outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : <span style="color: #0000ff">null</span>

<span style="color: #0000ff">return</span> $.extend({}, elRect, scroll, outerDims, elOffset)
6. getPracticalOffset: を使用してツールヒントの座標値を計算します。実現するための幅と高さの半分の原理
6.1. ボトムタイム
6.1.1. 上は位置決め要素 (pos) の高さです
6.1.2.配置された要素の左側 (pos) - 配置された要素の幅 (pos)/2 - ツールチップ要素の幅/2
6.2. top
1. Top は上部の高さです。 -位置決め要素 (pos) のツールチップ要素
6.2.2. 左は位置決め要素 (pos) の左側 – 位置決め要素 (pos) の幅 / 2 – ツールチップ要素の幅 / 2
6.3. 左が
の場合 6.3.1. Top は位置決め要素の上部 (pos) – 位置決め要素の高さ (pos)/2 – ツールチップ要素の高さ/2
.2. 左は位置決め要素 (pos) )、左はツールチップ要素
6.4 の幅、右は
6.4.1、上は位置決め要素 (pos) の高さです。位置決め要素 (pos)/2 – ツールチップ要素の高さ/2
6.4 .2. Left は、位置決め要素 (pos) の左 + 位置決め要素 (pos) の幅
Bootstrap ソース コード分析ツールチップ、ポップオーバー

6.5. 小さな三角形の位置は通常、要素の 50% ですが、ツールチップが左、上、右、下で隠れている場合は、位置を再計算して調整する必要があります。メソッド名は次のとおりです: getViewportAdjustedDelta
6.5.1. 最初にオーバーフローした幅または高さを計算します
6.5.2. 次に、arrowDelta の値、非表示の値 * 2 – ツールチップの幅 + ツールチップの幅
を計算します。三角形の上または左のパーセント値を設定します

ポップオーバー (ポップアップボックス)

ソースコードファイル:

Popover.js
Popover.scss

実装原則

1. ツールチップの実装を継承します
2. 追加のタイトルがあり、コンテンツをカスタマイズすることもできます (入力、ボタン、その他の対話型コントロールを挿入できます)

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLの汎用性:アプリケーションとユースケースHTMLの汎用性:アプリケーションとユースケースApr 30, 2025 am 12:03 AM

HTMLは、Webページのスケルトンであるだけでなく、多くのフィールドでより広く使用されています。1。Webページ開発では、HTMLはページ構造を定義し、CSSとJavaScriptを組み合わせて豊富なインターフェイスを実現します。 2。モバイルアプリケーション開発では、HTML5はオフラインストレージおよびジオロケーション機能をサポートしています。 3.メールやニュースレターでは、HTMLは電子メールの形式とマルチメディア効果を改善します。 4。ゲーム開発では、HTML5のCanvas APIを使用して2Dおよび3Dゲームを作成します。

HTMLドキュメントのルートタグは何ですか?HTMLドキュメントのルートタグは何ですか?Apr 29, 2025 am 12:10 AM

Theroottaginanhtmldocumentis.itservesStop-levellementThateChationCothercontent、ProperDocumentsTurcuteRuctureAndBrowsingを保証します。

HTMLタグと要素は同じものですか?HTMLタグと要素は同じものですか?Apr 28, 2025 pm 05:44 PM

この記事では、HTMLタグは要素を定義するために使用される構文マーカーであり、要素はタグやコンテンツを含む完全なユニットであると説明しています。彼らは協力してWebPages.Characterカウントを構築するために協力します:159

&lt; head&gt;の重要性は何ですかおよび&lt; body&gt; HTMLのタグ?&lt; head&gt;の重要性は何ですかおよび&lt; body&gt; HTMLのタグ?Apr 28, 2025 pm 05:43 PM

この記事では、&lt; head&gt;の役割について説明します。および&lt; body&gt; HTMLのタグ、ユーザーエクスペリエンスへの影響、およびSEOの影響。適切な構造化により、ウェブサイトの機能と検索エンジンの最適化が強化されます。

&lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ?&lt; strong&gt;&lt; b&gt;の違いは何ですかタグと&lt; em&gt;&lt; i&gt;タグ?Apr 28, 2025 pm 05:42 PM

この記事では、HTMLタグの違いについて説明します。、、、、、、、およびプレゼンテーションの使用とSEOとアクセシビリティへの影響に焦点を当てています。

HTMLのドキュメントで使用されている文字セットを示す方法を説明してください。HTMLのドキュメントで使用されている文字セットを示す方法を説明してください。Apr 28, 2025 pm 05:41 PM

記事では、UTF-8に焦点を当てたHTMLでのキャラクターエンコーディングの指定について説明します。主な問題:テキストの正しい表示を確保し、文字化けされたキャラクターの防止、SEOとアクセシビリティの強化。

HTMLのさまざまなフォーマットタグは何ですか?HTMLのさまざまなフォーマットタグは何ですか?Apr 28, 2025 pm 05:39 PM

この記事では、Webコンテンツの構築とスタイリングに使用されるさまざまなHTMLフォーマットタグについて説明し、テキストの外観に対する影響とアクセシビリティとSEOのセマンティックタグの重要性を強調しています。

「ID」属性とHTML要素の「クラス」属性の違いは何ですか?「ID」属性とHTML要素の「クラス」属性の違いは何ですか?Apr 28, 2025 pm 05:39 PM

この記事では、HTMLの「ID」属性と「クラス」属性の違いについて説明し、一意性、目的、CSS構文、および特異性に焦点を当てています。それらがWebページのスタイリングと機能にどのように影響するかを説明し、のベストプラクティスを提供する

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。