博文作者:ruantao1989{@}gmail.com
引自博客:ruantao.duapp.com/blog
OpenLayers学习-示例学习1:Map
先学下OpenLayers 再分析源代码
一来是之前一直用公司的js地图api开发, 有时会感觉有些受限. 希望通过源代码学下js实现
二来在职研考过了, 怎么也是地质大学的 多少也得学点儿gis的东西吧…先按自己的理解分类记录下
这份东西每天晚上弄到12点弄了一个礼拜, 弄完以后感觉主要还是要从openlayers学些组织代码 解决具体问题的方法, 这点上openlayers做的太nb了
放个笔记的GitHub地址: https://github.com/ruantao1989/read_OpenLayers
js继承1:apply继承和类拷贝继承
俩月没更新博客,10月GCT考试 11月结婚 这又连续加班半个月了, 马上又要去普吉岛蜜月, 都完事儿了就踏实了…
这几天自己瞎研究了一下js的继承, 现在写的肯定会有出错的地方, 先记下来 等回头学精了再来查错.
先从继承的宿主 也就是从对象上分, 对象的声明方式上分为:
一: 使用”构造函数”模式, 二: 使用字面量声明对象,
先说第二种,字面量因为没有用new, 所以只能手动去拷贝. 可玩性比较低, 以我现在的水平看不合适做继承.
重点说第一种”构造函数”模式,
这种继承从具体的继承方法上分:1.apply继承: 2.类拷贝继承
目前实验得出的结论是:
Grunt使用2:自动化
记录一下前端自动化工具的使用, 慢慢结合起来用 逐步逃离这种刀耕火种一样的体力活儿…
Grunt使用1:环境和入门
记录一下前端自动化工具的使用, 慢慢结合起来用 逐步逃离这种刀耕火种一样的体力活儿…
外边距叠加问题
1.前几天布局时候发现这么个问题: 外层div包含内层div 仅内层div有margin(仅想对内层div做偏移), 但是这个margin值 同时也作用在了外层div上(把外层div也顶走了).
2.按着hasLayout的思路, 加了个overflow:hidden或display:inline-block,或float:left解决.
3.心想: 莫非chrome和ff也有hasLayout的问题?
查了一下<精通CSS>, 查得这也是”外边距叠加(Collapsing margins)”的一种
ie6,7中overflow:hidden的bug
如图, 最外层容器内滚动条控制的内容 hidden没生效
布局是这样的
最外层wapper:负责画圆角(上中下仨图片)
中间层scroll:负责画滚动条
内层content:画两棵jstree画的树
jQuery源码阅读13-4:事件委托delegate流程
三天前BAE上mongo的collections都被他们系统删了, 三天了也没给个回复, 这会儿突然能用了 不知道是不是回光返照…
这篇文章早写好了也发不上来 以后全部数据我都写程序定期导出, BAE的运维太吓人了 慎用BAE啊…
书归正传: 和原生的事件委托类似, 也是在父级dom上绑定事件处理函数, 利用事件冒泡, 父级接收事件并判断是不是该相应委托.
jQ的事件实际上是存在缓存里的, 父级dom接收到事件后, 会从缓存里拿到包装好的事件队列, 然后靠jQ.Event实例处理事件
jQuery源码阅读13-3:事件trigger流程
模拟触发的调用流程和之前基本一致: fn.trigger ==> jQuery.event.trigger ==> 缓存的jQ.Event队列
最近工作比较烦, 碰上这么个自私的领导算是我三生有幸 对我来说绝对算得上是修炼. 都说机会是给有准备的人 我看还得加个前提: 要有合适的舞台.
我认栽, 但并不代表我会接受你们只会糊弄的习惯. 我的代码是给我自己写的 我不糊弄别人 更不糊弄自己. 我都25了 我可不想一辈子都只写这种垃圾代码.
想到<中国合伙人>里的一句台词(电影虽烂 但是这句台词我印象挺深)大概意思是: 没必要和有些人生气 她这样对你是因为她会永远留在这刷盘子 而你不一样, 你会飞的很远.
jQuery源码阅读13-2:事件删除流程
由于事件的绑定实际上是把对应的处理函数添加到cache中, 再addEventListener或attachEvent绑定jQuery.event.dispatch.apply( eventHandle.elem, arguments ).
所以删除就有两种情况 一是把目标事件从缓存的处理列表里删掉, 二是彻底解除绑定
以click事件为例:
如果dom元素上有多个绑定好的click事件,
解除绑定有两种情况, 1是删掉缓存上事件队列里的其中一个,2是事件队列全都删完了 这时才需要removeEventListener或detachEvent
调用过程还是fn.off ==> jQuery.event.remove ==> 第二种情况jQuery.removeEvent