国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

全面解析Bootstrap中tooltip、popover的使用方法

2019-11-20 09:43:26
字體:
來源:轉載
供稿:網友

一、tooltip(提示框)
 源碼文件:
 Tooltip.js
Tooltip.scss

實現原理: 
1、獲取當前要顯示tooltip的元素的定位信息(top、left、bottom、right、width、height等)
2、計算tooltip的位置,是top、left、bottom、right其中一個
3、然后根據計算的位置值,運算出坐標值
4、給tooltip應用坐標值 

源碼分析: 
1、ownerDocument:文檔;包含兩個對象:<DocType>、documentElement(根節點)
2、$.contains(domA, domB):判斷domA是否包含domB元素
3、應用了offset.setOffset方法,傳入了using參數,因為offset設置值的時候,不能四舍五入
4、$viewport:顯示tooltipr的容器元素
5、getPosition:此函數獲取元素定位坐標相關的信息,如:top、left、bottom、right、width、height、scroll等
  5.1、共用到了getBoundingClientRect方法,但此方法在IE8-會插件width、height
  5.2、如果是body,width、height會被重置為window的
  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、getCalculatedOffset:計算tooltip的坐標值,利用的是width、height折半原理實現
  6.1、bottom時
    6.1.1、top為定位元素(pos)的top+ 定位元素(pos)的高度
    6.1.2、left為定位元素(pos)的Left

主站蜘蛛池模板: 潮州市| 卫辉市| 松阳县| 绩溪县| 崇仁县| 南京市| 长宁县| 会宁县| 洪江市| 伊通| 桂东县| 那曲县| 甘南县| 岳池县| 巴东县| 梅州市| 汕头市| 砚山县| 荥经县| 奎屯市| 旬阳县| 普兰店市| 香港 | 阜阳市| 蓝田县| 鹰潭市| 明溪县| 卓资县| 二连浩特市| 东宁县| 北碚区| 四平市| 南皮县| 周至县| 保靖县| 富阳市| 丹东市| 呼伦贝尔市| 福安市| 南投县| 肇庆市|