html5 Canvas画图教程1:开始之前

摘要: 虽然大家都称Canvas为html5的新标签,看起来好像Canvas属于html语言的新知识,但其实Canvas画图是通过javascript来做的。所以,如果你想学习Canvas画图,你必须要有Javascript基础。另外,画图嘛,总有一些图像方面的术语和知识点,所以如果你有过做图或美工经验,学习Canvas会更容易。Canvas,意为画布也。而Html5中的Canvas也真的跟现实生活中的画布非常相似。所以,把他看成一块实实在在的画布可以加快理解。画布用canvas作画,首先,你需要有一块“画布”。如果你的书架里面没有画布,你可以买一卷回来放进去。当然,在网页里面我们不需要花钱买,直接写 阅读全文
posted @ 2012-11-23 13:47 十年灯 阅读(3574) 评论(1) 推荐(3) 编辑

javascript:for循环从入门到偏门,效率优化,奇特用法

摘要: for循环是非常基础的javascript知识,但由于JS太灵活了,所以可能出现一些让初学者崩溃的写法。我决定由浅入深的解释一下for循环,算是给比我还新手的新手解惑吧,少走弯路。一,for循环的基本写法代码如下://例一for(var i=0;i<10;i++) { alert(i);}这段代码太简单了,我都不好意思拿出手。代码的执行结果是依次弹出1到10,(更正:0-9)。PS:在早期的IE如IE6中,你把10改成10000,就能让用户一直点确定什么也不能干了哈哈——不要说是我出的主意。由于这是一篇基础课程,所以我们回归正题来详细分析一下这段代码吧。for循环的结构都是类似的,任意一 阅读全文
posted @ 2012-07-31 15:04 十年灯 阅读(3489) 评论(14) 推荐(6) 编辑

两种获取元素所有兄弟节点的方法比较

摘要: 下面是一个常规的获取兄弟节点的办法。function siblings(elm) { var a = []; var p = elm.parentNode.children; for(var i =0,pl= p.length;i<pl;i++) { if(p[i] !== elm) a.push(p[i]); } return a;}思路:先获取此元素的父节点的所有子节点,因为所有子节点也包括此元素自己,所以要从结果中去掉自己。还有另外一种看起来比较奇特的方法,是jQuery里面获取兄弟节点的源码:function sibling( elem ) ... 阅读全文
posted @ 2012-07-04 15:33 十年灯 阅读(493) 评论(1) 推荐(0) 编辑

Javascript:继续改进XMosaic.js

摘要: XMosaic.js是一个用来实现马赛克图片切换效果的JS类。刚又加了一种效果。调用方式如下:var msk = XMosaic('jsF',{pager:'pager',delay:3000,countX:5,countY:5,how:9,order:0 });当然也可以不用变量来保存他。不过用变量保存之后就可以用msk.Next()和msk.Prev()来跳到下一张或上一张(类本身没有上下跳转的参数传递),可以很方便的扩展。试试在文章内直接插入示例: 1234例子插入成功,不过真心累,而且有变形,但不管了。更多效果见上一篇文章的示例页了。下面基本是废话。本来 阅读全文
posted @ 2012-05-25 13:27 十年灯 阅读(1441) 评论(3) 推荐(4) 编辑

万恶的马赛克来啦!!javascript 马赛克遮罩图片幻灯片切换类

摘要: 新鲜出炉的javascript图片切换特效,实现的是马赛克遮罩切换,这个马赛克不影响“人类文明进步”。在flash里,实现遮罩动画很简单,不过JS实现起来就有些困难了。XMosaic.js,与XScroll.js和XScroll2.js一样,都是用来制作单张图片切换特效的javascript类,不过,迄今为止XMosaic.js实现的特效是最炫的,炫到我以后很长一段时间都不用再写图片切换类了。下面是一个iframe,用来装示例页,免得大家点击外链。注意看示例页下面的切换参数功能,可以浏览更多特效。默认特效是最简陋的。XMosaic.js的使用方法请查看示例页源代码。其中html结构与一般图片切 阅读全文
posted @ 2012-05-02 17:10 十年灯 阅读(2446) 评论(7) 推荐(1) 编辑

Javascript:最高效率的数组乱序方法

摘要: 常用的办法是给数组原生的sort方法传入一个函数,此函数随机返回1或-1,达到随机排列数组元素的目的。arr.sort(function(a,b){ return Math.random()>.5 ? -1 : 1;});这种方法虽直观,但效率并不高,经我测试,打乱10000个元素的数组,所用时间大概在35ms上下(firefox,下同)本人一直具有打破沙锅问到底的优良品质,于是搜索到了一个高效的方法。原文见此if (!Array.prototype.shuffle) { Array.prototype.shuffle = function() { for(var j, x... 阅读全文
posted @ 2012-04-23 17:08 十年灯 阅读(1340) 评论(6) 推荐(1) 编辑

javascript:花了一天时间解决了本来一小时就能搞定的事

摘要: 此刻我的心情是无奈。。。前天我打算写一个支持多图片同时滚动的类——就像某些网站下面展示友情链接那样的滚动。开始前我计划了一下我要实现的功能。切换效果——只有滚动可以单张图片切换,也可以多张图片切换同时显示图片的张数与每次滚动的图片张数可以自定义根据图片总数+同时显示张数+单次滚动张数,自动插入页码关于第3点说明一下,就是比如我容器宽900,每个图片宽300,那无疑,我可以同时显示3张图片;但我可以每次向左滚动1张图片(或者2张,3张),也就是说不一定每次显示几张就必须滚动几张。写到一半,一个让我郁闷一天的问题来了:如何计算出页码总数?有几个数字是已知的:图片总数,每次显示图片数,每次滚动张数。 阅读全文
posted @ 2012-04-18 17:08 十年灯 阅读(616) 评论(3) 推荐(0) 编辑

javascript:另一种图片滚动切换效果思路

摘要: 先说一种最普遍的思路:把图片们用ul之类的包起来,并设置float。然后设置这个ul本身为absolute定位,其父标签用relative定位。通过设置ul的left或top值,实现图片队列的滚动效果特点:只操作一个html元素(即上文的ul),对系统开销小;滚到头会回滚;从大序号滚动到小序号也会回滚;从最后序号滚动到第一个,会“咻”的一下把所有中间的图片也路过一次。另一种思路就是我在XScroll.js里实现的思路,所有图片用绝对定位。具体看那篇文章吧。XScroll.js完成后,我始终觉得他的系统消耗是个问题,因为他实现一个图片切换基本上都是同时操作两张图片。所以我想写一个精简版的,但又不 阅读全文
posted @ 2012-04-17 11:27 十年灯 阅读(1432) 评论(2) 推荐(2) 编辑

XScroll.js更新:加入交错切换效果,附思路

摘要: 原XScroll发布文见此:http://www.cnblogs.com/lixlib/archive/2012/03/21/javascript-tupian-qiehuan-xscroll_js.html2012-4-13:加入了交错切换效果。看示例页第一个例子——现在我可以说XScroll.js支持17种切换效果了吗。。。还是心虚所谓的交错切换,就是当前图片向左移动,下一张图片向右移动,各自移动到一半时,就都往回移动,但此时图片叠加顺序改变,下一张图片将覆盖当前图片。交错切换也支持4个方向。交错切换的实现思路:首先,不可避免的要同时操作两张图片:当前图片与下张图片,分别叫curS与nex 阅读全文
posted @ 2012-04-13 16:53 十年灯 阅读(2312) 评论(0) 推荐(0) 编辑

一个关于javascript匿名函数的问题

摘要: 匿名函数,就是没有名字的函数。如:function (){ alert('a function');}但是,上面的代码会报错。firebug提示:function statement requires a name,也就是:函数必须要有个名字。奇怪的是,如果我用一对()把这个没有名字的函数包起来,就不会报错了。如:(function (){ alert('a function');})(注意包裹函数的()!).虽然这样不会报错,但谁能知道这个函数是否声明成功了呢?是不是因为根本没声明所以才不报错呢?我们这样来测试:让函数自己执行一次:(function (){ 阅读全文
posted @ 2012-03-30 10:31 十年灯 阅读(923) 评论(7) 推荐(1) 编辑