BootstrapBootstrap源代码分析转换,附加

一、Transition(过滤)

用作一个基础支撑的零件,被另外零件多次援。实现基于浏览器支持transition的力,然后绑定动画的毕事件;
首先:创建一个Element;
下一场:迭代查此元素支持之transition动画名称
Transition实现之技术,主要是再次写了jquery的event对象,代码如下:

$(function () {
    $.support.transition = transitionEnd()

    if (!$.support.transition) return

    $.event.special.bsTransitionEnd = {
      bindType: $.support.transition.end,
      delegateType: $.support.transition.end,
      handle: function (e) {
        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
      }
    }
  })

 

第二、Affix(自动生成定位)

1、Target:参数表示该固定参考节点(应该是出滚动条之父容器对象),默认是window
2、Data-offset设置的top和bottom值,只会用来计算表达式,不见面设置及css中
3、三种植职位固定样式类:

3.1、Affix-top:到达页面顶部的早晚会添加的体裁
3.2、Affix:在页面中的时会加上的体制
3.3、Affix-bottom:在页面底部的时段会加上的体

4、处理公式:

1、Top:traget的滚漫长高度(scrollTop)<
元素设定离顶位置的离(offsetTop)(首赖判断)
   
1.1、scrollTop设置为:元素本身定位的top(元素即一定离文档原点的离)(非首糟糕)
2、getPinnedOffset:获取粘住元素top – target滚动条的top
3、bottom:如果粘住元素是首坏bottom定位的时段,那么bottom就是
target滚动条高度 + target元素的莫大 >= 整个文档滚动条高度 –
粘住元素距离底部的冲天
   3.1、如果是无首潮bottom定位
     
3.1.1、如果offsetTop(元素设定离顶位置的去)不为空,target的top
 + getpinnedOffset的值 > 粘住元素即稳及top的值
      3.1.2、如果offsetTop为空,target的top   + target元素的万丈
> 文档高度 – 粘住元素距离底部的莫大
4、能更改粘住元素的仅来他的top,top值为:文档高度 — 粘住元素高度 —
粘住元素距离底部的可观

5、坑的所于:

1、top和bottom一起使用的时节,会现出冲,原因:

   
Affix-bottom,也就是到达页面底部的时光,bootstrap是用offset来安的top值Bootstrap,给元素加以了position:relative值,这就招致在返页面顶部后,再次于下滚动时候,没有其他效果
style=”color: #ff0000;”>原因:行内样式设置的relative会覆盖class中安的fixed样式

6、总结

1、在top情况呈现可以,在bottom情况下得自己加入手动控制
2、应用affix控件,至少要团结再写affix样式,用于控制粘住条的固定。

相关文章