摘要: 【注:本文所有的代码和实例仅在chrome和safari等webkit内核的浏览器测试通过】如果说从web Pages 能够转到web app时代,那么css3和html5其他相关技术一定是巨大的功臣。唯一的遗憾就是pc端浏览器的泛滥导致了我们不得不走所谓的优雅降级,而且这种降级是降到新技术几乎木有多大的用武之地。于是,客户端还算统一的移动端开始成了一个大的试验田。能够让众人大肆的在上面舒展拳脚。诸如众多新起的ui库或者框架(jquery-mobile, sencha, phoneGap ...),可见在移动终端上确实还有不小的田地。纵使如此,效率仍旧成为一个最大的瓶颈。之前有一种尝试是用CS 阅读全文
posted @ 2012-08-05 00:26 一只柯楠 阅读(1171) 评论(0) 推荐(0) 编辑
摘要: 你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。Vimthe Six Billion Dollar editorBetter, Stronger, Faster.学习vim并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。我建议下面这四个步骤:存活感觉良好觉得更好,更强,更快使用VIM的超能力当你走完这篇文章,你会成为一个vim的 superstar。在开始学习以前,我需要给你一些警告:学习vim在开始时是痛苦的。需要时间需要不断地练习,就像你学习一个乐器一样。不要期望你能在 阅读全文
posted @ 2012-07-14 22:53 一只柯楠 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 除了另无它法,肯定不使用navigator.userAgent来判定浏览器。因为在第一次浏览器大战初期,Netscape占绝对统计地位,大部分人们不愿意兼容其他浏览器,并通过检测其UA让他们的网站只允许Netscape访问,这就逼使其他浏览器(包括IE)修改自己的UA伪装成Netscape来通过那些自以为是的脚本,于是出现每个人都声称自己是别人的局面,即使最新的IE9的UA也是://Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)//2010 4 16日更新ie = !+"\v1" ;ie = ! 阅读全文
posted @ 2012-06-12 22:11 一只柯楠 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 技巧一之setTimeout.【转】应用案例:比如你想一个函数循环执行10次,怎么办?以前通常是先setInterval,然后clearInterval,技巧一就是克服这个问题(function () { var i = 0; function job() { console.log(i++); if (i < 10) { setTimeout(job, 1000); } } job(); })();上面这个job函数就只会乖乖的执行10次.然后自动停止技巧二之高效的for循环应用案例:抛弃传统的循环... 阅读全文
posted @ 2012-06-11 23:12 一只柯楠 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备)。开发者们都知道在高端智能手机系统中有两种应用程序:一种是基于本地(操作系统)运行的APP;一种是基于高端机的浏览器运行的WebApp,本文将主要讲解后者。WebApp与NativeApp有何区别呢?NativeApp:1、开发成本非常大。一般使用的开发语言为JAVA、C++、Objective-C。2、更新体验较差、同时也比较麻烦每一次发布新的版本,都需要做版本打包,且需要用户手动更新(有些应用程序即使不需要用户手动更新,但是 阅读全文
posted @ 2012-06-06 11:15 一只柯楠 阅读(1005) 评论(0) 推荐(0) 编辑
摘要: 1. viewport:也就是可视区域。对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏、状态栏、滚动条等等之后用于看网页的区域,这是真正有效的区域。由于移动设备屏幕宽度不同于传统web,因此我们需要改变viewport;实际上我们可以操作的属性有4 个:?width - // viewport 的宽度 (范围从200 到10,000,默认为980 像素)height - // viewport 的高度 (范围从223 到10,000)initial-scale - // 初始的缩放比例 (范围从>0 到10)minimum-scale - // 允许用户缩放到的 阅读全文
posted @ 2012-06-03 01:05 一只柯楠 阅读(3067) 评论(0) 推荐(0) 编辑
摘要: // 一个backbone的实例,作者:// [Jérôme Gravel-Niquet](http://jgn.me/). 这个demo使用了// [LocalStorage adapter](backbone-localstorage.js)// 你可以在浏览器中演示它.//当DOM载入完之后加载应用:$(function() {// Todo Model// 基础 **Todo** model 拥有 `title`, `order`, 和 `done` 属性.var Todo = Backbone.Model.extend({// todo的默认属性.defaults 阅读全文
posted @ 2012-05-30 10:36 一只柯楠 阅读(1300) 评论(0) 推荐(1) 编辑
摘要: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf- 阅读全文
posted @ 2012-05-29 19:33 一只柯楠 阅读(149) 评论(0) 推荐(0) 编辑
摘要: TextRectangle对于文本对象,W3C提供了一个 TextRectangle 对象,这个对象是对文本区域的一个解释。看下图(截图来源ppk):一行连续的文本我们可以获取到里面的5行文字,红色框就是TextRectangle这个抽象的对象.TextRectangle对象包含了, top left bottom left四个属性,这四个属性都是对应可视区域viewport的理解TextRectangle后,对getClientRects和getBoundingClientRect可以得到一个更好的说明.getClientRects 返回一个TextRectangle集合,就是TextRec 阅读全文
posted @ 2012-05-29 16:42 一只柯楠 阅读(1304) 评论(0) 推荐(0) 编辑
摘要: 1 function fireEvent(el,type){2 if(document.createEventObject){3 return el.fireEvent('on'+type);4 }else{5 var e = document.createEvent('HTMLEvents');6 e.initEvent(type,true,true);7 return !el.dispatchEvent(e);8 }9 } 阅读全文
posted @ 2012-05-03 01:13 一只柯楠 阅读(948) 评论(0) 推荐(0) 编辑