知识有时也需温故知新嘛,本次做一次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的插件并不常用,这里没有列出。

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

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

  1. Bootstrap插件的使用

    昨天,我偶然间发现了它——BootStrap插件,它是一一套功能强大的前端组件.说起来,我跟这插件还真算得上有缘,我本来并不是去找这个插件的,我本来是找BootStarp Paginator这个分页插 ...

  2. bootstrap插件学习-bootstrap.dropdown.js

    bootstrap插件学习-bootstrap.dropdown.js 先看bootstrap.dropdown.js的结构 var toggle = '[data-toggle="drop ...

  3. bootstrap插件学习-bootstrap.modal.js

    bootstrap插件学习-bootstrap.modal.js 先从bootstrap.modal.js的结构看起. function($){ var Modal = function(){} // ...

  4. Angular2发布思路(整理官网Deployment页面)

    本文是按着ng2官网的高级内容“Deployment”的思路整理得出的,原文虽然在angular2的中文站下挂着,截止目前却还是英文版未翻译,笔者就在这里结合自己的理解给出原文的一点点整理.这是原文地 ...

  5. Bootstrap -- 插件: 按钮状态、折叠样式、轮播样式

    Bootstrap -- 插件: 按钮状态.折叠样式.轮播样式 1. 按钮(Button)插件:可以添加进一些交互,比如控制按钮状态. 如需向按钮添加加载状态,只需要简单地向 button 元素添加 ...

  6. Bootstrap -- 插件: 提示工具、弹出框、 警告框消息

    Bootstrap -- 插件: 提示工具.弹出框. 警告框消息 1. 提示工具(Tooltip)插件:根据需求生成内容和标记. 使用提示工具: <!DOCTYPE html> <h ...

  7. Bootstrap -- 插件: 模态框、滚动监听、标签页

    Bootstrap -- 插件: 模态框.滚动监听.标签页 1. 模态框(Modal): 覆盖在父窗体上的子窗体. 使用模态框: <!DOCTYPE html> <html> ...

  8. BootStrap插件

    站点引用 Bootstrap 插件的方式有两种: 单独引用:使用 Bootstrap 的个别的 *.js 文件.一些插件和 CSS 组件依赖于其他插件.如果您单独引用插件,请先确保弄清这些插件之间的依 ...

  9. 使用Ajax+jQuery来实现前端收到的数据在console上显示+简单的主页设计与bootstrap插件实现图片轮播

    1.实现前端输入的数据在console上显示 上一篇是解决了在前端的输入信息在cygwin上显示,这次要给前台们能看见的数据,因为数据库里插入的数据少,所以写的语句翻来覆去就那几个词,emmm···当 ...

随机推荐

  1. LintCode 111 Climbing Stairs

    这道题参考了这个网址: http://blog.csdn.net/u012490475/article/details/48845683 /* 首先考虑边界情况,当有1层时,有一种方法. 然后再看2层 ...

  2. mysql5.7中文乱码问题的解决,将编码统一改成utf8的方法

    修改配置文件my.ini 将其改为:(路径根据自己mysql的安装路径进行适当调整,与字符编码无关,不必改动) [mysqld] basedir=C:\MYSQL57datadir=C:\MYSQL5 ...

  3. JavaScript 基础第九天(DOM第三天)

    一.引言 我们昨天介绍了很多的概念以及大部分我们可以在工作中用到的事件,那么今天我们将运用这些知识做一些效果! 二.导入 今天的内容以实例为主. 三.重点内容 祝愿墙的简单构建: 首先我将介绍出本次实 ...

  4. QQ在线客服设置

    QQ在线客服设置 1.客户在添加QQ在线客服后,需要让用户在线不需要添加为好友就能在线对话,一般默认设置下会显示"您需要添加对方为好友+才能给对方发送会话消息",具体解决方法如下: ...

  5. Unity粒子系统特性

    经代码测试分析,unity粒子系统 Shiruken粒子系统的可编程性比较差.所有的Modules都无法通过代码控制. 可以用ParticleSystem.SetParticles设置粒子,但是设置进 ...

  6. WPF快速入门系列(7)——深入解析WPF模板

    一.引言 模板从字面意思理解是“具有一定规格的样板".在现实生活中,砖块都是方方正正的,那是因为制作砖块的模板是方方正正的,如果我们使模板为圆形的话,则制作出来的砖块就是圆形的,此时我们并不 ...

  7. 在.net中使用aquiles访问Cassandra(三)

    之前我们实现了如何修改数据,还需要相应的删除动作.删除方式会有几种情况,以下分别一一介绍.   1.批量删除,适应于多行多列的情况. public void Remove(string columnF ...

  8. Android多线程分析之一:使用Thread异步下载图像

    Android多线程分析之一:使用Thread异步下载图像 罗朝辉 (http://www.cnblogs.com/kesalin) CC 许可,转载请注明出处   打算整理一下对 Android F ...

  9. [Unity3D]再次点击以退出程序

    [Unity3D]再次点击以退出程序 本文介绍为Android应用编写点击返回按键时的"再次点击以退出程序"的方法. +BIT祝威+悄悄在此留下版了个权的信息说: 下面是一个测试用 ...

  10. C#将dll打包到程序中

    最近比较懒,加上内容也不多就懒得排版了,字放大了,看起来应该方便一点 直接进入主题 先来看一个栗子,假设现在有一个第三方dll namespace TestLibrary1 { public clas ...