第 20 页|IT-北北报

从bootstrap2到bootstrap3的升华

2014/04 28 17:04

最近在学习整理bootstrap,简要记录一下bootstrap2到3的一些重要变更,希望可以让框架发挥它应有的作用–北北

*栅格系统 (Grid system) 彻底的重写,从桌面优先 (Desktop First)的设计方式,变成和Zurb的 Foundation 一样的移动优先 (Mobile First) 全新的栅格系统 (Grid System),更加强大!如果你用过Foundation的栅格系统 (Grid System)就有体会了。 bootstrap1

  • .col-xs 对应手机设备 (phones)
  • .col-sm 对应平板设备 (tablets)
  • .col-md 对应普通桌面设备 (desktops)
  • .col-lg 对应宽屏设备 (large desktops)

*组件的改进与删减,包括: 按钮、表格、导航栏等 *再见,IE7!最低从IE 8开始支持。而且因为设计已经变成移动优先,所以对IE8的支持也需要respond.js我相信Bootstrap 4时肯定会放弃对IE8的支持,就像现在的Foundation nd minified JavaScript –> <script src=”//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/js/bootstrap.min.js”> </script>

*更优秀的组件

  • 两个新的组件:List GroupPanels,组件非常实用
  • 新的 Modal,更加简单好用
  • Panels组件:

bootstrap3 List Group 组件: bootstrap4   摘自知乎,原文链接

JSFunction-Array-distinct对于鸭式类型的数组去重函数

2014/04 19 11:04

JSFunction这个常用函数库的整理过程中,其实第一次写Array扩展函数的时候就包含了distinct的扩展,但是在api中我并没有公布出来,因为当时只支持对String、Int型的数组进行去重,对于Object类型的数组存在问题;之后又忙于整理ArrayLinq函数,就一直没有去重写这个函数,直到今天我终于花了一些时间吧这个较有意义的函数书写完成,并融合了ArrayLinq的语法支持按字段去重,可以让前端处理数据上更加灵活。 举例说明: 对于数值型数组去重

var intarr = [1, 2, 3, 4, 5, 3, 2]; intarr.distinct();

结果:[1,2,3,4,5] 字符串数组去重

var strarr=["zhangsan","lisi","wangwu","lisi"]; strarr.distinct();

结果:["zhangsan","lisi","wangwu"] 上边两个函数都非常简单易懂,对于下边object类型的数组进行去重,我简要说明一下原理。 对于object我们不能单纯的用等号去判断两个对象是否相等,经朋友提示,需要使用鸭子类型判断方法,学动态语言的都知道一句话:“如果它走起来像鸭子,而且叫起来像鸭子,那么它就是鸭子”,对于Object类型元素,如果它的每一个键值都相等,我们就认为它是同一个对象。原理就是对比Object的每一个键值对是否相等,当然这里用到了一个巧妙的方法,运用递归把所有的键值都展开组成一个字符串,然后去对比是否存在重复的字符串来除去重复的元素。 Object数组去重

var objarr=[{ x: "1", y: "a" } }, {

结果:[{ x: "1", y: "a" } }, { x: "2", y: "b" }] 当然对于上面的数组我们也可以使用ArrayLinq的语法进行按某个字段值进行去重,方法如下。

objarr.distinct(function(item){ return item.y; });

结果:[{ x: "1", y: "a" } }, { x: "2", y: "b" }] Object复合数组去重,对于object下还包含object的数组,我们在鸭子判断的时候递归去调用了鸭子判断方法,可以遍历多级object数组。

var objarr=[{ x: "1", y: { m: 1, n: 2 } }, { x: "2", y: "b" }, { x: "1", y: { m: 1, n: 2 } }];
objarr.distinct();

结果:[{ x: "1", y: { m: 1, n: 2 } }, { x: "2", y: "b" }];

objarr.distinct(function(item){ return item.x; });//按照字段x是否重复进行筛选

结果:[{ x: "1", y: { m: 1, n: 2 } }, { x: "2", y: "b" }];

如果您对这个函数有更好的方法可以实现,可以留言给我,在完善代码的路上有大家的支持才能走的更远,写的更好。--北北

影像之美—《上帝之眼》(下)

2014/04 17 09:04
上帝之眼

时至今日,《上帝之眼》终于被我完完整整的读完了,在上篇中已经总结了一些经验,那么接下来,还有一些东西值得记录。 ·用光:清晨和傍晚是最佳拍摄时间,因为此时的阳光入射角较小,色温低,光线柔和,是绝佳的拍摄时间。顺光突出主体,侧光勾勒轮廓,逆光可以拍出剪影,当然视不同情况画面 总会有意想不到的表现。 ·拍摄水:比如湖面、河流、瀑布等,用快速快门可以定格水的瞬间,用慢速快门可以拍出水流的连续性,甚至可以尝试使用中灰镜来延长曝光时间,拍出水的质感。另外水还有反光性,可以拍摄倒影,让画面显得宏大。 ·不同场景:对于拍摄山岳,秘诀就是早起,日出时候是绝佳拍摄时刻;对于拍摄花卉、昆虫劲量使用微距,表现更多细节;对于建筑拍摄,广角镜头再合适不过了,用来表现建筑的恢宏气势;对于拍摄动物,一只长焦镜头也是必不可少的,而且要调快快门,尝试连续拍摄模式,这样可以捕捉稍纵即逝的瞬间。 ·人文摄影,最好的方式就是让景物与人融合,让影像有叙事性,突出的是民俗、职业、生活、集会、表情等等,带有感情的人文摄影才会触动心灵。 ·运动物体,通常使用较快的快门来定格物体,但是尝试采用追随拍摄会得到意想不到的效果,把快门调制1/15s左右,让相机随着运动物体移动,直到快门释放。 追随拍摄



无觅相关文章插件,快速提升流量