全面解析Bootstrap中tooltip、popover的使用方法
一、tooltip(提示框)源码文件: Tooltip.js Tooltip.scss实现原理: 1、获取当前要显示tooltip的元素的定位信息(top、left、bottom、right、width、height等) 2、计算tooltip的位置,是top、left、bottom、right其中一个 3、然后根据计算的位置值,运算出坐标值 4、给tooltip应用坐标值 源码分析:
1、ownerDocument:文档;包含两个对象: var el = $element[0]
var isBody = el.tagName == 'BODY' var elRect = el.getBoundingClientRect() return $.extend({},scroll,outerDims,elOffset) 6、getCalculatedOffset:计算tooltip的坐标值,利用的是width、height折半原理实现 6.1、bottom时 6.1.1、top为定位元素(pos)的top+ 定位元素(pos)的高度 6.1.2、left为定位元素(pos)的Left – 定位元素(pos)的宽度/2 – tooltip元素宽度/2 6.2、top时 6.2.1、top为定位元素(pos) 的top-tooltip元素的高度 6.2.2、left为定位元素(pos)的left – 定位元素(pos)的宽度/2 – tooltip元素宽度/2 6.3、left时 6.3.1、top为定位元素(pos)的top – 定位元素(pos)的高度/2 – tooltip元素高度/2 6.3.2、left为定位元素(pos)的left – tooltip元素的宽度 6.4、right时 6.4.1、top为定位元素(pos)的top – 定位元素(pos)高度/2 – tooltip元素高度/2 6.4.2、left为定位元素(pos)的left + 定位元素(pos)宽度 6.5、小三角的位置,一般情况下元素的50%的位置,但如果出现tooltip被left、top、right、bottom隐藏的时候,就需要重新计算和调整位置了。方法名为:getViewportAdjustedDelta 6.5.1、首先计算出被overflow的宽度、或者高度 6.5.2、然后计算出arrowDelta的值,隐藏值 * 2 –tooltip宽度 + tooltip宽度 6.5.3、设置三角的top或left百分比的值 二、Popover(弹出框)源码文件: Popover.js Popover.scss实现原理: 1、继承tooltip实现的 2、多了一个标题,还可以自定义content(里面可以插入input、button等交互控件) 如果大家还想深入学习,可以点击进行学习,再为大家附3个精彩的专题: 以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |