ホームページ >ウェブフロントエンド >htmlチュートリアル >Bootstrap ソース コード分析ツールチップ、popover_html/css_WEB-ITnose
1. ツールチップ (プロンプトボックス)
Tooltip.scss
実装原理:
2. 上、左、下、右のいずれかのツールチップの位置を計算します
3. 次に、計算された位置の値に基づいて座標値を計算します
4.座標値をツールチップに適用します
ソースコード分析:
2: domA に domB が含まれるかどうかを判断します。要素
3. offset.setOffset メソッドが適用され、渡されます。 offset の値を設定するときに丸めることができないため、 using パラメーターが欠落しています。 4. $viewport: tooltipr のコンテナー要素を表示します。関数は、上、左、下、右、幅、高さ、スクロールなどの要素の位置座標に関連する情報を取得します。
5.1. getBoundingClientRect メソッドは共有されますが、このメソッドは幅と高さをプラグインします。 IE8
5.2. 本体の場合、幅と高さがウィンドウにリセットされます
5.3. ソースコードは次のとおりです:
$element = $element || this.$element //如果没有传入参数,则以$element(触发tooltip事件的元素)为准 var el = $element[0] var isBody = el.tagName == 'BODY' var elRect = el.getBoundingClientRect() if (elRect.width == null) { // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) } var elOffset = isBody ? { top: 0, left: 0 } : $element.offset() var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : nullreturn $.extend({}, elRect, scroll, outerDims, elOffset)
6.2.2 . Left は、位置決めされた要素の左 (pos) – 位置決めされた要素の幅 (pos)/2 – ツールチップ要素の幅 /2
6.3.1 の場合、top は位置決めされた要素の上部になります。 element (pos) – 位置決め要素の高さ (pos)/2 – ツールチップ要素の高さ/2Popover (ポップアップ ボックス)
ソース コード ファイル:
Popover.js
Popover.scss
実装原則