- 博客(110)
- 资源 (33)
- 问答 (4)
- 收藏
- 关注
原创 javascript实现图片隐写
什么是图片隐写? 发福利了,这是一张图片,这不仅仅是一张图片,如上图将一些信息隐藏在图片中的方式称之为图片隐写,但是有一点既然是隐写,那么肯定是悄悄的写, 图片还是原来的图片,只是里面隐藏了其他的信息。对于上面的图片,保存到本地之后,修改后缀名为.zip,然后用winrar打开,发现这是一个正常的压缩文件,里面包含了我们的福利信息。 这里讨论两种往图片内写入其他信息的方式,一种是在图片文件尾
2016-07-15 18:28:26 4542
原创 THREE.js—绘制弧线(SplineCurve3)
SplineCurve3通过一系列的点来创建一条平滑的曲线。var curve = new THREE.SplineCurve3([ new THREE.Vector3(-10, 10, 10); new THREE.Vector3(-5, 5, 5); new THREE.Vector3(0, 0, 0); new THREE.Vector3(5, -5, 5);
2016-05-10 15:29:11 18727 6
原创 光源(Light)
光源光是自然界中常见的现象,我们把正在发光的物体成为光源。与光相对立的是阴影,光被物体 遮挡住了便形成了阴影。根据光照的效果不同,THREE.js中抽象除了几种不同的光源。 聚光灯(THREE.SpotLight)平行光源(THREE.DirectionalLight)环境光源(THREE.AmbientLight)半球光源(THREE.HemisphereLight)点光源(THRE
2016-05-10 14:21:18 3221
原创 更新几何体(Geometry update)
基于性能的原因,改变几何体(Geometry)的某些属性不会引起浏览器对几何体(Geometry)的重新绘制。THREE.js会缓存一些 数据,例如几何体的顶点和面的信息,修改这些属性的时候需要通知THREE.js去更新几何体,这些几何体才能得到重新计算并更新。需要通知THREE.js更新的几何体(Geometry)属性下面这些属性的变动需要通知THREE.js更新 1. geometry.ve
2016-05-04 22:48:46 6197
原创 THREE.js-几何体(Geometry)
这里将Geometry理解为几何体不知道是否合适。前面的例子中我们用到过BoxGeometry来创建一个立方体。除了BoxGeometry之外Three.js还提供了很多拆箱即用的几何体,例如:圆形(CircleGeometry)、柱体(CylinderGeometry)、球体(SphereGeometry)、文字(TextGeometry)等等。后面会对这些常见的几何体用法做一个简单的介绍。 除
2016-05-03 18:06:54 31586
原创 THREE.js概述
THREE.js简介THREE.js可以这么理解three+js,three代表3维世界,js即javascript,这是一个让我们可以在浏览器中绘制3D效果的javascript库,通过webgl为html5 canvas提供硬件3D 加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了。我们的世界是一个三维的世界,而电脑屏幕是一个二维的平面,要想把三维的世界映
2016-04-28 11:09:59 2597
原创 CSS-盒模型
概述css盒模型指定元素如何显示。页面的每个元素都是一个矩形区域,这个矩形区域包括元素的内容,内边距,边框以及外边距构成。内边距是内容边界和边框之间的区域,可以通过padding属性指定,边框是矩形区域的边界,可以由border属性进行配置,外边距则由是margin属性。.box{ border-color: green; border-width: 10px; border
2016-04-24 22:15:09 1520
原创 html5 api
history apiback()forward()go(index)pushState(stateObject, title, url)replaceState(stateObject, title, url)监听history change events: pushState() and replaceState() will not cause the onpopstate ev
2016-04-21 18:12:56 1547
原创 DOM操作为什么慢?
DOM对象其实也是一个内存对象,为什么对DOM的操作这么慢? 其实是因为DOM操作会引起浏览器的render和paint操作, 而这两个操作比较耗时,所以造成对DOM操作比较慢。 关于render和paint的概念需要理解一下浏览器呈现一 个页面需要哪些操作。浏览器如何呈现一个页面 一个完整的页面包含html和css以及js,从浏览器加载完这些资源文件到呈现一个完整的页面需要经过很多的步骤
2016-04-20 16:54:02 2048
原创 正则环视
环视环视只进行子表达式的匹配,不占有字符,匹配的内容不保存到匹配结果。环视的作用相当于对所在位置加了一个附加条件,只有满足了这个条件,环视子表达式才能匹配成功。 举个例子:/\d+(?=px)/ig用上面的正则去匹配1px,可以匹配成功,匹配到的结果是1。 但是如果用它去匹配1是匹配不成功的,因为不满足(?=px)。正则中的环视有一下几种: (?<=Expression)逆序肯定环视 如果
2016-04-20 10:04:52 1874
原创 Array.from()
javascript中Array类型给我们提供了很多的API,但是在javascript中还有这么一部分对象,例如函数中的arguments虽然和Array很像,有length属性,可以像数组一样用下标去获取元素,but它并不是数组,不能使用Array.push(),Array.pop()等数组类型提供的方法。我们将arguments这种类型的对象称之为ArrayLike,为了将其转换为数组对象,以
2016-04-06 23:53:20 2957
原创 使用Qunit做javascript单元测试
使用Qunit做javascript单元测试 最近公司在搞敏捷开发,提倡拥抱变化,既然是变化,那就会出错咯,那怎么保证能及时发现代码中的错误呢?可以通过单元测试来保证代码执行的正确性,因此公司要求提交的代码必须有对应的单元测试,每次代码的提交都会跑一遍单元测试(服务端自动执行),也就是所谓的持续集成。然后呢?那么然后?其实接下来就没有然后了,进度,进度,功能,功能,单元测试这东西就被抛到九霄云外了,
2016-04-03 12:29:02 1791
原创 postMessage和onMessage
html5中postMessage和onMessage的用法html5提供了postMessage和onMessage这一对方法来在不同的文档页或者不同的工作线程之间进行通信。在不同的文档页内通信什么叫做不同的文档页?如果一个页面上面嵌套了iframe,那么iframe和外层的页面属于两个不同的文档页。
2016-03-20 16:59:59 8686
原创 js实现的一个lru缓存
把angularjs里面的一个lru缓存给拿出来了,完全照搬的 var slice = [].slice; var toString = Object.prototype.toString(); var getPrototypeOf = Object.getPrototypeOf; function isArrayLike(obj){
2015-08-11 23:23:21 2248
原创 Canvas基本操作
canvas基本操作基本apiarc()Canvas绘图环境提供了arc()方法来绘制圆弧与圆形。arc()方法有六个参数,arc(x, y, radius, startAngle, endAngle, counterClockwise), * 前两个参数表示圆心的坐标, * 第三个参数表示园的半径, * 第四个和第五个参数表示圆弧的起始角和终结角, * 第六个参数为绘制方向,如果为fals
2015-06-24 22:32:07 658
原创 Canvas绘图环境
canvas绘图环境元素canvas提供了一张画布,要想在这张画布上面作画,我们需要canvas绘图环境,通过环境我们可以在canvas元素上面绘制图形,文本,显示并修改图像。var context = canvas.getContext("2d");context是指向元素canvas的绘图环境对象的引用。CanvasRenderingContext2D对象包含了大量的绘制图形属性 属性
2015-06-23 22:46:23 1374
原创 Canvas元素基本知识
canvas元素如果说到在网页中绘制图形以及动画,大部分人会想到flash,但是是要想在浏览器中运行flash的画,还必须装额外的插件,而且不是所有的浏览器都会支持flash。在html5中引入了标签canvas,让我们不用装任何其他的插件,就可以在实现html5的浏览器中实现图形绘制。Canvas使用示例如何使用canvas元素,我们先来看一个简单的例子:
2015-06-18 21:02:04 1324
原创 Object.observe()
Object.observe()简介This is an experimental technology, part of the Harmony (ECMAScript 7) proposal. Because this technology's specification has not stabilized, check the compatibility table for
2015-05-26 22:58:58 1477
原创 linux基本命令备忘
命令manman命令用来访问存储在linux系统上的手册页面用法man command通常用户手册会将与该命令相关的信息分成几节name:命令的名称和简介synopsis:显示命令的格式description:描述每个命令的选项author:命令开发人员的信息reporting bugs:报告bug的途径copyright:提供该命令源代码的版权情况see
2015-05-12 22:23:28 599
原创 d3.js画一个直方图
本文以及后面几篇文章会通过几个例子来熟悉d3.js的使用。先上代码,后面细说 var height = 600; var width = 600; var dataset= [30,20,45,12,21,28,46,64,73,78,54]; var num = 15; for(var i = 0; i <
2015-04-26 22:46:01 3458
原创 git add和git commit
http://www.cooklife.cn/detail/551946579218037076133139#View提交文件到版本库中,需要两步操作:git addgit commit为什么要将一个提交动作分为两部分呢?git中有一个暂存区的概念,执行git add的时候,git会将文件添加到暂存区,这个时候变动尚未提交到版本库,通过git log是看不到
2015-03-30 21:28:26 862
原创 git checkout与git reset
http://www.cooklife.cn/detail/55194e16921803707613313a#Viewgit reset用于撤销操作。 git reset [--hard | --mixed | --soft] [] --hard 会执行下图中操作123,参数hard会同时改变版本库的HEAD引用指向,缓存区内的内容,以及工作空间的内容,执行之后HEAD
2015-03-30 21:24:51 1323
原创 git版本管理工具之版本管理
git是干嘛的?版本管理工具是干嘛的?当然是管理同一个文件不同的版本的。那么版本是什么概念,对于一个文件,从新建到完成态,期间会经过很多个状态,有的时候我们希望保存这些中间状态,在需要的时候可以恢复到其中的某个状态,这个中间状态就是一个版本。跟svn不同,svn中的版本号是一个自增长的数字,在git中的版本号是根据某些规则生成的不重复的长度为40的字符串,每次commit之后就会生
2015-03-30 19:54:42 653
原创 git版本管理工具
http://www.cooklife.cn/detail/5515674d9218037076133135#Viewgit和svn的区别以svn为代表的集中式版本控制系统,只有一个中央代码库,开发的时候需要先从中央代码库获取到最新的版本,然后开始干活,干完活之后提交到中央服务器。而git是一种分布式管理控制,每个使用代码库的机器上面都可以有自己的本地代码库,如果多人协作开
2015-03-27 23:29:29 681
原创 angular事件
http://www.cooklife.cn/detail/54c8f838ed5b52846b6bca41#View对于一款前端框架,提起事件,很容易让人联想到DOM事件,比如说鼠标点击以及页面滚动等。但是我们这里说的angular中的事件和DOM事件并不是一个东西。事件的发布我们可以通过$emit()以及$broadcast()来发布事件$emit(name,
2015-01-28 22:55:37 10784
原创 angular $resource模块
http://www.cooklife.cn/detail/54c643a6c93620284e964b59#View上一篇中讲到使用$http同服务器进行通信,但是功能上比较简单,angularjs还提供了另外一个可选的服务$resource,使用它可以非常方便的同支持restful的服务单进行数据交互。安装ngResource模块是一个可选的angularjs模块,如果
2015-01-26 21:42:44 58130
原创 angular通过$http与服务器通信
http://www.cooklife.cn/detail/54c5044ec93620284e964b58#Viewangular是一个前端框架,实现了可交互式的页面,但是对于一个web应用,页面上进行展示的数据从哪里来,肯定需要服务端进行支持,那么angular是如何同服务端进行交互的呢?$httpangular提供了$http服务来同服务端进行通信,$http服务
2015-01-25 23:00:01 35187
原创 angular服务
http://www.cooklife.cn/detail/54c36a3ac93620284e964b57#Viewangular的控制器同view绑定,当view不需要的时候控制器就会被销毁,因此控制器的作用域是同其绑定的视图一致的。服务提供了一种在整个应用的生命周期内保存数据的方法,可以通过服务在控制器间进行通信。注册服务angular应用中提供了五种方法来创建服
2015-01-25 13:00:34 1562
原创 angular依赖注入
http://www.cooklife.cn/detail/54c33ea2c93620284e964b56#View使用过java进行开发的人肯定知道大名鼎鼎的spring框架,对于spring的IOC肯定也有所了解,通过配置文件定义好bean之后,如果需要使用这些bean,不需要自己去实例化,而是跟spring这个大容器去要就行了。我们的angular框架也实现了这种机制。
2015-01-24 14:42:38 1401
原创 angular指令
http://www.cooklife.cn/detail/54bfbbd2fc2d96d1341bw3c制定的html标准中,html的标签以及标签的属性值有限,不能满足一些特定化的需求,在angular中可以通过指令是对html中的标签以及标签属性做的一个扩展。首先我们来看看一个内置的指令,了解了解指令到底是一个神马东东?我们先拿指令ng-src开刀
2015-01-24 13:23:14 1186
原创 linux在如何让进程在后台运行
http://www.cooklife.cn/detail/54a66aea268aeafe034003b3#View今天碰到这么一个问题,使用ssh客户端登陆了linux服务器,启动并运行服务之后如果关闭客户端与服务器的连接,这个时候运行于服务器上的服务也会被关闭,如何让命令提交之后不受本地关闭终端端口的影响呢?首先我们要知道为啥客户端的断开会影响服务端程序的运行?当
2015-01-21 23:06:09 1968
原创 angular内置过滤器以及自定义过滤器
http://www.cooklife.cn/detail/54831589899a81cc9330d1a9#Viewangular中的过滤器提供了linux中管道式处理数据的方式。如何自定义一个过滤器angular中创建自定义的过滤器需要放在自己的模块中,通过模块的filter()方法来创建自定义的过滤器。angular.module('app.filte
2015-01-21 22:51:18 5368
转载 如何支持github账号登录
转载自:http://www.cooklife.cn/detail/54bbc8d4fc2d96d1341b00c9#View有些时候我们需要自己的网站支持第三方账号的登录,这里来讲讲如何让自己的网站支持github账号的支持。1.在github上面建立一个应用对应自己需要接入的网站首先我们自己需要一个github账号,登录自己的github账号,依次进入菜单Settings-
2015-01-20 20:23:19 24994 1
原创 认识项目结构
之前就大概翻了一下node.js开发指南这本书,自己并没有真正的写过node.js的代码,这里回忆一下node.js的一些基础知识。在blog项目下面主要有三个目录,public,routes以及views,public中存放的是一些css和图片等资源文件,views文件夹中存放在我们的页面模板文件,routes中存放在我们的源代码。先来看看app.js,该文件是启动文件。va
2014-11-08 12:23:49 669
原创 搭建环境
node.js的安装,我的电脑win8系统,直接从官网下载一个安装包,同win系统中其他的软件一样,下一步直到安装完成。安装完成之后进入控制台node --version可以看到这样node.js就算安装完成了。如何使用node.js来进行web开发,这里我们使用express。首先来安装expressnode.js通过npm来管理包,这里我们通过npm
2014-11-08 12:19:59 2160
原创 做一个自己的博客
十一月五号,2014年还有不到两个月的时间,目前在用友做crm不忙,每天五点下班,回到家六点钟,想写点什么,一直想做一个自己的博客,争取在这不到两个月的时间里面搭建起来。本着学习新技术的目的,不打算采用自己比较熟的java进行开发,决定用node.js+monjdb进行开发,前段使用bootstrap和angular。在搭建的过程中坚持记录,作为输出。
2014-11-08 12:10:19 708
JAVA API1.6中文文档 高清完整CHM版
2013-10-16
typescript类型转换的问题
2018-03-27
javascript正则匹配从左往右等于从右往左的字符串
2016-04-19
intellij插件开发,监听java文件的创建
2015-08-09
while(count++)和while(count--)
2015-07-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人