全面解析Bootstrap中transition、affix的使用方法

 更新时间:2016年05月30日 08:54:37   作者:小龙女先生  
这篇文章主要为大家详细解析了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、处理公式:

4.1、Top:traget的滚动条高度(scrollTop)< 元素设定离顶位置的距离(offsetTop)(首次判断)
    4.1.1、scrollTop设置为:元素本身定位的top(元素当前定位离文档原点的距离)(非首次)
4.2、getPinnedOffset:获取粘住元素top – target滚动条的top
4.3、bottom:如果粘住元素是首次bottom定位的时候,那么bottom就是 target滚动条高度 + target元素的高度 >= 整个文档滚动条高度 – 粘住元素距离底部的高度
   4.3.1、如果是非首次bottom定位
      1)、如果offsetTop(元素设定离顶位置的距离)不为空,target的top  + getpinnedOffset的值 > 粘住元素当前定位到top的值
      2)、如果offsetTop为空,target的top   + target元素的高度 > 文档高度 – 粘住元素距离底部的高度
4、能改变粘住元素的只有他的top,top值为:文档高度 — 粘住元素高度 — 粘住元素距离底部的高度

5、坑之所在:

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

    Affix-bottom,也就是到达页面底部的时候,bootstrap是用offset来设置的top值,给元素加了position:relative值,这就导致在回到页面顶部后,再次向下滚动时候,没有任何效果
原因:行内样式设置的relative会覆盖class中设置的fixed样式


6、总结

1)、在top情况表现良好,在bottom情况下需要自己加入手动控制
2)、应用affix控件,至少要自己重写affix样式,用于控制粘住条的定位。

如果大家还想深入学习,可以点击这里进行学习,再为大家附一个精彩的专题:Bootstrap学习教程

本文系列教程整理到:Bootstrap基础教程 专题中,欢迎点击学习。

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

相关文章

  • layui异步加载table表中某一列数据的例子

    layui异步加载table表中某一列数据的例子

    今天小编就为大家分享一篇layui异步加载table表中某一列数据的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 如何编写一个d.ts文件的步骤详解

    如何编写一个d.ts文件的步骤详解

    这篇文章主要给大家介绍了关于如何编写一个d.ts文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用d.ts具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • layer.js open 隐藏滚动条的例子

    layer.js open 隐藏滚动条的例子

    今天小编就为大家分享一篇layer.js open 隐藏滚动条的例子,具有很好的参考价值,希望对大家有所帮助。 一起跟随小编过来看看吧
    2019-09-09
  • window.open被浏览器拦截后的自定义提示效果代码

    window.open被浏览器拦截后的自定义提示效果代码

    window.open被浏览器拦截后的自定义提示效果代码...
    2007-11-11
  • JS去除重复并统计数量的实现方法

    JS去除重复并统计数量的实现方法

    js去除重复并统计数量方法,首先点击按钮触发事件,然后用class选择器,迭代要获取的文本(这里最好用text()方法)加入到Array()集合里。具体操作方法,大家通过本文学习下吧
    2016-12-12
  • JavaScript中的style.cssText使用教程

    JavaScript中的style.cssText使用教程

    这篇文章主要介绍了JavaScript中的cssText是什么,style.cssText使用教程,cssText返回值是什么,需要的朋友可以参考下
    2014-11-11
  • 微信小程序画布显示图片绘制矩形选区效果

    微信小程序画布显示图片绘制矩形选区效果

    这篇文章主要介绍了微信小程序画布显示图片绘制矩形选区效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-05-05
  • fetch 如何实现请求数据

    fetch 如何实现请求数据

    这篇文章主要介绍了fetch 如何实现请求数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • js弹出框、对话框、提示框、弹窗实现方法总结(推荐)

    js弹出框、对话框、提示框、弹窗实现方法总结(推荐)

    下面小编就为大家带来一篇js弹出框、对话框、提示框、弹窗实现方法总结(推荐)。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • javascript实现des解密加密全过程

    javascript实现des解密加密全过程

    这篇文章主要介绍了javascript 实现des解密加密的过程,需要的朋友可以参考下
    2014-04-04

最新评论