bootstrap插件思路整理

知识有时也需温故知新嘛,本次做一次bs插件梳理。

$.support.transition

通过判断自定义元素是否支持WebkitTransition、MozTransition、OTransition和transition来判断当前浏览器是否支持transition这个css3属性

Modal

  1. 从UI功能角度来说,点击某个元素来触发弹出一个对话框。在插件第一次加载的时候,用body监听所有data-toggle="modal"属性元素。一来达到事件绑定的目的,而来为后续异步加入同属性元素做准备。
  2. 一个对话框就对应需要将其关闭的功能,modal实现是将改方法放在构造器中去实现,一来每个modal都有自己独立的关闭系统,互相不冲突。二来对于原型继承的方式,如何能让每个实例拥有属于自己的一片天。选用构造器而不是原型中为他们布置,提供了一套不错的思路。

scrollspy

  1. 页面加载完成之后为当前页面上面所有拥有data-spy="scroll"属性的元素执行scrollspy方法,实际是进行初始化构建。
  2. 从UI功能角度来说,scrollspy分为两个部分:其一、点击上面导航栏里面的元素,能够快速链接到对应的内容;其二、滚动侧边栏,可以让对应的导航栏标题高亮。直观感受这两者必须要存在某种联系,制作这类UI插件则需要从这两者联系出发。
  3. scrollspy提供了一种关联思路:通过html属性关联,导航栏里面拥有内容部分头部的id哈希值。而内容框则拥有导航栏的id哈希值。其他解析工作交给插件去完成。
  4. 在scrollspy的构造器部分依然为导航栏绑定click事件,为侧边栏绑定了scroll事件。滚动侧边栏,则是让滚动的高度与内容框内具体内容距离父元素的高度进行比较,进而得出让导航栏的哪个元素高亮。
  5. 我们可以看到其中一个问题,就是采用a标签链接的方式,会对scroll造成两次触发。同时也会修改url。撇开修改url,这也是如此关联的一种通病了。

tab

  1. tab和scrollspy的UI展现类似,对于导航栏和内容框的关联关系也是使用html属性id哈希值进行关联。
  2. 高亮部分有两个:导航栏;内容框。
  3. 让之前高亮的元素(拥有active类)去掉高亮,让需要高亮的元素进行高亮操作(添加active类)。

tooltip

  1. 作为一种小型UI插件,tooltip没有默认初始化步骤,要使用的时候需要开发人员自行调用。
  2. 在Tooltip构造器中可以看出此时的构造器已经充当了一个原型方法init的启动器。对于更多事件的绑定与监听则放在原型init方法里面。较之modal和scrollspy,传入实例中独立的元素来达到在原型方法里绑定自己独立的事件,可以看到这种写法,相当于将构造器的绑定方法进行了一层封装,并将封装内容塞在原型里面,使得构造器更加苗条。
  3. 此插件另外一个核心内容就是让提示定位到具体元素上面。从定位元素获取offsetWidth、offsetHeight和相对视口的top和left再去定位提示元素。

collapse

  1. 从UI功能来讲,折叠的使用时非常广泛地,折叠方式也是多种多样的。bs一系列插件在关联关系的处理上基本一致。
  2. 使用高度判断是否添加类,相当繁琐,推荐collapse的做法跟tab基本是一致的。

carousel

  1. 轮播插件式比较依赖结构和样式的。
  2. 构造器中为元素绑定mouseenter和mouseleave事件。
  3. 轮播存在prev、next、to等操作。carousel将三种操作抽出公共的slide方法进行处理。
  4. 关于pause和cycle操作,基本采用清除定时器和重启定时器的方式完成。

其他bs的插件并不常用,这里没有列出。

读源码,角度不同,获取收获也不同吧。

时间: 2024-11-08 21:40:57

bootstrap插件思路整理的相关文章

Bootstrap 插件

Bootstrap 插件   1.Bootstrap 过渡效果(Transition)插件 过渡效果(Transition)插件提供了简单的过渡效果.如果您想要单独引用该插件的功能,那么除了其他的 JS 文件,您还需要引用 transition.js.或者,正如 Bootstrap 插件概览 一章中所提到,您可以引用 bootstrap.js 或压缩版的 bootstrap.min.js. Transition.js 是 transitionEnd 事件和 CSS 过渡效果模拟器的基本帮助器类.

bootstrap插件之Carousel

兼容:ie9以上 特点:滑动图片看起来永远只有两帧,过度完美:是html css js的完美配合:其中html的data属性起了关键性作用 前提:normalize.css  jquery.js html 代码: <div class="wrapper"> <div class="carousel" id="carousel-generic"> <!-- Indicators --> <ul class=

bootstrap插件之X-editable+django

一.X-editable介绍 X-editable是一款基于Jquery的表格编辑器.通过简单调用即可轻松实现字段编辑效果.与django一起使用,可以在线编辑数据,修改后台信息. 插件地址: http://vitalets.github.io/x-editable/docs.html  x-editable 用法(以bootstrap3为例): 下载x-editable,在html模板中添加 <link href="bootstrap-editable/css/bootstrap-edi

快速排序思路整理

引言: 快速排序和归并排序是面试当中常常被问到的两种排序算法,在研究过数据结构所有的排序算法后,个人认为最复杂的当属快速排序.从代码量上来看,快速排序并不多,我之所以认为快排难以掌握是因为快排是一种递归算法,同时终止条件较多.如果你刚刚把快排的思路整理过一遍可能觉得不难,然而一个月之后呢? 面试要求的是临场发挥,如果不是烂熟于心,基本就卡壳了.在面试官眼里,你和那些完全不懂快速排序算法的菜逼是一样的,也许实际上你可能私底下已经理解很多遍了,然而并没卵.所以当下问题就是,如何将快排烂熟于心?我觉得

Bootstrap插件库

简介:Bootstrap 自带 12 种 jQuery 插件,大部分的插件可以在不编写任何代码的情况被触发. 引用方式: 1.可以单独引用相关插件,但是必须明白这些插件之间的依赖关系,使用要求较高 2.引用bootstrap.js 或压缩版的 bootstrap.min.js.                    attention:所有的插件依赖于 jQuery.所以必须在插件文件之前引用 jQuery.请访问 bower.json 查看 Bootstrap 当前支持的 jQuery 版本.

搜索与排名思路整理

学习<集体智慧编程>第4章的思路整理: 本章的主要内容就是建立一个模拟的全文搜索引擎,主要的大步骤为:1.检索网页,2.建立索引,3.对网页进行搜索 4.多种方式对搜索结果进行排名 一.检索网页:主要利用python写了一个爬虫软件,通过爬取一个网站上链接来不断的扩充爬取的内容.主要利用了python的urllib库和BeautifulSoup库.这部分比较简单,核心代码如下: def crawl(self,pages,depth=2): for i in range(depth): newp

Bootstrap插件1--tooltip

在引入bootstrap.js之前我们需要引入jquery的js文件 既然是bootstrap的插件,那么自然需要引用bootstrap.js和bootstrap.css这2个核心文件了 这里了主要介绍tooltip提示信息插件的常用使用方法 <a href='javascript:;' rel='tooltip' title='我就是提示的信息' class='btn btn-primary'>点击出现提示信息</a> 调用方法: <script> $(functio

BootStrap插件使用总结

BootStrap插件使用总结 记录下Bootstrap一些常用的插件使用方法,千万要注意插件的版本! 1.Bootstrap Switch 开关控件.相比checkbox,switch就要好看的多了.在bootstrap-switch下载即可,添加css文件,按照amd规范引入.js文件即可,不再过多赘述. require.config({ waitSeconds : 0, paths : { //一些库文件 jquery : '../lib/jquery/jquery-2.1.4.min',

可考虑在你下一个项目中使用的 50 个 Bootstrap 插件

可考虑在你下一个项目中使用的 50 个 Bootstrap 插件 作者 jopen 2014-11-12 09:54:16 阅读目录 1. Bootstrap Multiselect 2. Bootstrap Dialog 3. Bootstrap Confirmation 4. Bootstrap Tag Input 5. Bootstrap File Input 6. Bootstrap WYSIWYG 7. Bootstrap Select 8. pNotify 9. Bootstrap