Bootstrap源码分析的transition、affix

一、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值,给元素加以了position:relative值,这便招在回页面顶部后,再次朝着下滚动时候,没有其他力量
style=”color: #ff0000;”>原因:行内样式设置的relative会覆盖class中设置的fixed样式
图片 1

6、总结

1、在top情况表现出色,在bottom情况下需要好加盟手动控制
2、应用affix控件,至少要和谐再次写affix样式,用于控制粘住条的定点。

发表评论

电子邮件地址不会被公开。 必填项已用*标注