Archives for : 前端

星期四 少云 26~37℃

html5 本地存储写入读取json

var data = {
    intro: ‘test’,
    arr: []
};

// 写入(把json转成字符串)
localStorage.setItem(‘my_storage’, JSON.stringify(data));

// 读取(把json字符串解析成json)
var json = JSON.parse(localStorage.getItem(‘my_storage’));
alert(json.intro);


办公室健身(36)

俯卧撑,下午 60 个。

星期一 晴 26~36℃

动态布局库 isotope

暂时用不上,记录一下。

Isotope 是一个jQuery的插件,用来实现精美的动态元素布局。

Isotope可以实现仅仅依靠CSS3无法实现的动态布局方式,可以动态添加,删除,排序,筛选元素。Isotope的动画引擎可以充分使用现代浏览器CSS动画中GPU硬件加速性能。


屌丝团记忆(45) 新同学

上周新入一位后端同学,今天新入一位运营同学,一共 13 人了。

接下去主要招的是后端和运营,前端可能也还要再招一个。

星期一 阴,傍晚暴雨 24~31℃

Koala – 开源前端预处理器语言编译工具(支持Less、Sass、CoffeeScript编译)

http://www.v2ex.com/t/63881

http://koala-app.com/index-zh.html


Backbone.js入门学习笔记(推荐教程)

找了一些中文教程,这个还不错,比我看到的其他中文教程好。

http://www.the5fire.com/backbone-tutorials-catalogue.html

2013-9-10 更新:

糯米同学推荐的:Backbone源码分析-Backbone架构+流程图

星期六 蒙蒙雨转阴 23~31℃

屌丝团记忆(42) 前端目录结构讨论

今天讨论前端目录结构,定下的结构:

/static
-/core(内部js, css)
–/base
-/vendor(外来js)
-/apps(所有的模块都放在这个目录下)
–/app_1
—/js
—/css
—…
–/app_2
–…
-/image(不把 image 放在的 app 各自的目录下,是考虑到目录移动的灵活性,如 cdn 等)
-/components(2013.06.28讨论新增)

主要用到 jQuery/RequireJS/Backbone/Underscore.

星期四 阴 22~31℃

html5 audio 语音播放在手机端使用注意

在手机端需要先播放,否则监听不到 canplay.
ios、android的chrome

var player = $(‘audio’).get(0);
//var ios = (/(ipod|iphone|ipad)/i).test(navigator.userAgent);
var mobile = !!navigator.userAgent.match(/AppleWebKit.*Mobile./);
if (mobile) {
 player.play();
}
player.addEventListener(‘canplay’, function() {
 // …
});

扩展阅读:
http://kolber.github.io/audiojs/
http://leiyongping88.iteye.com/blog/1831145


在家健身(76)

小区里慢跑 6 圈,25 分钟左右。

星期一 晴转多云 25~35℃

js“复制到剪贴板”方案

  1. zeroClipboard
  2. zClip
  3. 参考:http://my.oschina.net/ernest/blog/39251

抽空整理了一份 zclip demo(含 zclip 文件):jquery.zclip.1.1.1.rar

注意:如果放在弹出层里,需要在弹出层显示后再调用 zclip() 方法。

以 bootstrap-modal 的 callback 为例:

$(‘#my_modal’).modal().show(function () {
 $(‘#my_modal .copy_url’).zclip({
  path: …
  copy: …
 });
});


bootstrap-modal 回调

$(‘#my_modal’).modal().show(function () {
 // callback…
});

参考:http://stackoverflow.com/questions/11821865/twitter-bootstrap-modal-how-to-pass-data-to-callback-function


屌丝团记忆(40) 工作已经开始影响到家人健康

上个月记录的《屌丝团记忆(29) 彷徨》,记录了创业与个人健康的担忧,现在发现,不仅是个人健康,还影响到了家人的健康。

LP 昨天早上突然心脏不舒服,紧急去医院,医生初步诊断是心律失常、心律不齐,然后拍胸片和做24小时动态心电图。

从昨天早上到今天早上,发作了四到五次,差不多四五个小时一次。

分析一下,主要有以下两个原因:

  1. LP 没上班,自己一个人在家,心情比较压抑。
  2. 我晚上太晚回家,在我到家之前,LP 要么在等我,还没睡;要么半睡着,又不敢完全睡着,经常在半睡半醒间被我的开门声惊醒。这么持续了三个月。

昨晚一夜没睡好,心里在纠节着,矛盾着,我们这样创业究竟是不是太急功近利了?

第1851天:js时间比较

星期五 小雨转阴 19~27℃

js时间比较

function compareTime(begin, end) {
 var begin_time = new Date("1970/1/1 " + begin);
 var end_time = new Date("1970/1/1 " + end);
 if(isNaN(begin_time) || isNaN(end_time)){
  return null
 }
 if(begin_time > end_time) {
  return 1;
 }
 if(begin_time < end_time) {
  return -1;
 }
 return 0;
}

var begin_time = ’8:00′;
var end_time = ’9:00′;
alert(compareTime(begin_time, end_time));
 

星期五 小雨 18~25℃

让scroll事件在滚动条停止时响应

var timeout = false;
$(window).on(‘scroll’, function () {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function () {
// doing…
}, 100);
});

参考:http://www.lav.so/vskill.php?id=2

星期六 小雨转阴 6~13℃

chrome 实时查看页面 ip 的插件

  1. Chrome Flags
    安装好后,点一下插件 ico 才可以看到 ip
     
  2. HostAdmin
    会直接在插件 ico 上显示 ip,同时也可以切换多组 hosts
     
  3. hosts文件管理工具
    可以设置在页面下方角落直接显示 ip,切换hosts也很方便。
    这个工具的页面 ip 显示比较准。切换hosts后,如果要生效,一般要重启浏览器,但是有时只要过一会就会生效,不用重启浏览器。这个工具可以实时监视页面ip。

PS:之前记录过一个SwitchHosts,也是一个切换 hosts 的系统小工具。


网站变灰CSS代码

html {
 filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); /* ie */
 -webkit-filter:grayscale(100%); /* chrome */
}

星期日 晴 8~17℃

GruntJS

grunt.js 是一个自动化构建工具,是 node.js 的一个组件。

使用 grunt.js 需要先安装 node.js,以前装 node.js 比较麻烦,现在直接下安装包来安装就可以了。

1 安装grunt

1.1 安装grunt命令行工具grunt-cli
使用 -g 全局安装,这样可以在任何一个目录里使用了。
命令:

npm install -g grunt-cli

1.2 grunt版本查看
命令:

grunt -version

2 搭建前端项目

(*以下提到的顶目根目录,也可以是项目的静态文件根目录,例如 static)

2.1 新建 package.json

package.json放在根目录下,它包含了该项目的一些元信息,如项目名称、描述、版本号,依赖包等。它应该和源码一样被提交到svn或git。

package.json内容需符合JSON语法规范,如下

{
 "name": "koudaitong-isv",
 "version": "0.1.0",
 "devDependencies": {
  "grunt": "~0.4.1",
  "grunt-contrib-jshint": "~0.3.0",
  "grunt-contrib-uglify": "~0.2.0",
  "grunt-contrib-concat": "~0.1.3",
  "grunt-contrib-watch": "~0.3.1",
  "grunt-contrib-less": "~0.5.0",
  "grunt-regarde": "~0.1.1",
  "grunt-contrib-livereload": "~0.1.2",
  "grunt-contrib-connect": "~0.2.0"
 }
}

2.2 新建 README.md 文件

用文本编辑器,里面输入 readme 内容,任意文本

2.3 安装grunt及其插件

打开命令行工具进入到项目根目录
命令:

npm install

下载的 grunt 版本及其插件版本,以 package.json 里的 devDependencies 设置为准。

2.4 新建 Gruntfile.js 文件

Gruntfile.js也是放在项目根目录下,几乎所有的任务都定义在该文件中,它就是一个普通的js文件,里面可以写任意js代码而不仅局限于JSON。和package.json一样它也要和源码一样被提交到svn或git。

Gruntfile.js由以下内容组成

1、wrapper函数,结构如下,这是Node.js的典型写法,使用exports公开API

module.exports = function(grunt) {
  // Do grunt-related things in here
};

2、项目和任务配置
3、载入grunt插件和任务
4、定制执行任务

Gruntfile.js 例子(该示例完成以下任务):

1、合并src下的文件(ajax.js/selector.js)为domop.js
2、压缩domop.js为domop.min.js
3、这两个文件都放在dest目录下

module.exports = function(grunt) {
    // 配置
    grunt.initConfig({
        pkg : grunt.file.readJSON(‘package.json’),
        concat : {
            domop : {
                src: ['src/ajax.js', 'src/selector.js'],
                dest: ‘dest/domop.js’
            }
        },
        uglify : {
            options : {
                banner : ‘/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n’
            },
            build : {
                src : ‘dest/domop.js’,
                dest : ‘dest/domop.min.js’
            }
        }
    });
    // 载入concat和uglify插件,分别对于合并和压缩
    grunt.loadNpmTasks(‘grunt-contrib-concat’);
    grunt.loadNpmTasks(‘grunt-contrib-uglify’);
    // 注册任务
    grunt.registerTask(‘default’, ['concat', 'uglify']);
};

2.5 执行grunt任务

打开命令行,进入到项目根目录。
命令:

grunt

2.6 命令行快捷方式

创建 cmd 的快捷方式,右键属性,在快捷方式的“起始位置”输入项目根目录,这样就不用每次都手动进入该目录了。

资料参考


解决modem log is stopped提示的方法

手机root后,每次重启过一会都会出现提示:

modem log is stopped.

字面意思是“调制解调器日志记录已经停止运行”。

(有可能是某一些应用激活了该服务,偶然发现可能和墨迹天气有关

治标不治本的方法:

“应用管理 -> 正在运行”停止该服务。

根治的方法:

向下划动屏幕,点击“modem log is stopped”提示,选中 modem log 选项,然后点击 start (不要勾选 start automatically when reboot)。重启手机。

另一个根治的方法是找到激活该服务的应用,卸掉试试(我卸了墨迹天气就好了)。

参考:http://wenku.baidu.com/view/8b4ce4f704a1b0717fd5ddaf.html


办公室健身(15)

俯卧撑,上午 45 个。