互联网日新月异,尤其是近一两年,各种前卫的技术开始频频出现在人们视野中,比如html5,css3,虽然规范仍旧在不断修订的草案中,但是已经不妨碍前卫的设计师或者前端工程师们的尝试了。企图利用这种变迁带给用户不一样的新奇体验。
其实稍微细心点看下,国外的对这两个新技术的使用已经很常见了,尤其是css3,各种圆角阴影甚至dom变换都开始用css3才完成,而在低版本的ie中采用优雅降级的处理方式。这是一个过渡阶段,总有一天,会完全过渡到那个闪耀着诱人光圈的时代。
所以,为了与时俱进,我也开始抽空余时间学习一下这两个更为强大的武器。并将陆续的将学习过程中的一些小实践分享给大家,仅仅起个抛砖引玉的作用。可能更多的是和html5相关的东东,如canvas,或者svg。因为本人是个视觉主义者,更喜欢一些有视觉冲击力的东东。
至于canvas的基本api,我就不详讲了,因为有人比我讲的更好,请参考http://dev.opera.com/articles/view/html-5-canvas-the-basics/ 或翻译版http://kb.operachina.com/node/190 。
为了使学习不那么无趣,我喜欢做一点点好玩的东西,哪怕是很简单的东东。
【以下demo请使用新版本的现代浏览器如firefox3.0+,chrome8.0+,等等查看,ie9未经测试, 看不到效果的请拷代码本地运行】
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<style>body{margin:0; overflow:hidden;}</style>
<script>
onload = function () {
var C = Math.cos,
S = Math.sin,
w = window,
d = document.getElementById("canvas"),
n = 360,
c = d.getContext("2d");
c.fillRect(0, 0, d.width = 2000, d.height = 1000);
c.globalCompositeOperation = "lighter";
c.lineWidth = .5;
var st = setInterval(function () {
if (n >= 3) {
c.font = ""+Math.ceil(120-n/3)+"px 宋体";
c.globalAlpha = n / 1000;
c.strokeStyle = "hsl(" + (n + 110 % 360) + ",99%,50%)";
x = -n * C(n / 100);
y = 250 - S(n / 360 ) * n / 2.5;
c.strokeText("长春万易 白金山", x + 100, y);
c.font = ""+n/3+"px Georgia";
c.strokeText("HTML5", x + 380, y + 255);
n -= 1;
} else clearInterval(st);
}, 16)
}
</script>
</head>
<body>
<canvas id="canvas">your browser don't support html canvas!</canvas>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>canvas math</title>
<meta name="author" content="hongru.chen" />
<style>
body {margin:0; background:#000;}
canvas {display:block; margin: 10px auto;}
</style>
<script>
var AmazingLine = function () {
var init = function (n, i, config) {
window[n] = this;
this.n = n;
var canvas = document.getElementById(i),
ctx = this.ctx = canvas.getContext('2d');
this.t = 0;
this.r = config.radius || 300;
this.draw();
}
init.prototype = {
draw : function () {
var _this = this;
this.ctx.fillRect(0, 0, 600, 600);
this.ctx.translate(300, 300);
for (var i=0; i<45; i++) {
for (var j=-45; j<=45; j+=15) {
setTimeout(new Function(this.n+'.drawLine('+j+')'), 50*this.t)
this.t ++;
}
}
},
drawLine : function (i) {
this.ctx.beginPath();
this.ctx.moveTo(0, this.r);
var r = Math.PI/180 * i, x = (this.r * Math.sin(r)) / Math.sin(Math.PI/2 - r)*r;
this.ctx.lineTo(x, Math.sin(x));
this.ctx.strokeStyle='rgb('+Math.ceil(Math.random()*255)+','+Math.ceil(Math.random()*255)+','+Math.ceil(Math.random()*255)+')';
this.ctx.lineWidth=.5;
this.ctx.stroke();
this.ctx.rotate(Math.PI/360 * 30);
}
}
return init;
}();
</script></head>
<body>
<canvas id="canvas" width="600" height="600">Your Broswer don't support html5 canvas!</canvas>
<script>
new AmazingLine('_mytest', 'canvas', {radius: 300})
</script></body>
</html>
分享到:
相关推荐
《Dreamweaver4教程全接触》是一份详尽的资源包,旨在帮助用户深入理解和掌握Adobe Dreamweaver 4这款强大的网页设计与开发工具。Dreamweaver 4是早期版本,但其基本概念和功能在现代版本中依然适用,因此这份教程...
《Flash 8.0 使用全接触》是一本深入解析Flash 8.0的综合性教程,旨在为初级、中级以及高级的Flash制作人员提供全面的应用知识和技能训练。这本书覆盖了Flash 8.0的各项核心功能,包括动画制作、图形编辑、交互设计...
《汇编语言全接触》是一本深入探讨汇编语言的电子书籍,以CHM(Microsoft Compiled HTML Help)格式呈现。CHM文件是一种常见的电子文档格式,它将HTML页面、图像和其他资源组合在一起,便于离线阅读和快速检索。汇编...
《汇编语言全接触》是一部全面讲解汇编语言的电子书,采用CHM(Microsoft Compiled HTML Help)格式,这是一种常见的Windows平台下用于存储和查看帮助文档的格式。它将HTML页面、图像和其他资源打包在一起,形成一个...
《Dreamweaver4教程-全接触》是一本深入解析Adobe Dreamweaver 4的综合性教程,旨在帮助初学者和进阶者全面掌握这款强大的网页设计和开发工具。Dreamweaver 4是20世纪末互联网发展高峰期的重要软件,它极大地推动了...
《电脑经典问题全接触 EXE电子书》是一本专门针对计算机常见问题解答的资源,它以EXE电子书的形式提供,方便用户在Windows操作系统上直接阅读。这种类型的电子书通常包含丰富的文字、图片和可能的交互元素,旨在帮助...
《汇编语言全接触》是一本深入探讨汇编语言的宝贵资源,对于计算机科学和编程领域的学习者来说,它提供了一个全面了解低级编程的窗口。汇编语言,作为计算机硬件与高级编程语言之间的桥梁,是理解计算机工作原理的...
Ajax并非一种单一的技术,而是一种综合运用多种技术(JavaScript、XML、HTML、CSS等)的方式,通过在后台与服务器异步交换数据并局部更新页面,从而提高了网页的响应速度和用户体验。它允许用户在不重新加载整个页面...
### 完美Javadoc全接触 #### 概述 本文档详细介绍了Javadoc注释的各种样式及用途,包括但不限于包、类、方法、变量等的注释方式,并提供了实际的示例来帮助读者更好地理解和应用这些注释。通过Eclipse等开发工具的...
5. **AJAX(异步JavaScript和XML)**:通过创建XMLHttpRequest对象,实现页面局部更新,无需刷新整个页面。 6. **DOM操作**:包括元素的创建、查找、删除和属性修改,以及文本内容的增删改查。 7. **浏览器兼容性*...
【Dreamweaver 2.0 全接触】深入解析 Dreamweaver 2.0,作为Macromedia公司的经典网页制作工具,以其强大的设计功能在多媒体制作领域独树一帜。这款软件拥有以下显著特点: 1. **站点管理功能**:内置的FTP客户端...
在IT行业中,网页布局与设计是一项至关重要的技能,而DIV+CSS是实现这一目标的核心技术。这个压缩包提供了两个珍贵的学习资源,旨在帮助初学者快速掌握这一领域。下面将详细介绍这两个资源及其涵盖的知识点。 首先...
- `log4j.appender.FILE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n` 定义具体的日志输出格式,如时间、级别、类名、行号和消息。 **日志级别** Log4j支持多种日志级别,按严重性从低到高排序...
│ adjuggler(5).htm │ adjuggler(6).htm │ adjuggler.htm │ article_count.jsp │ b01.gif │ b01a.gif │ b01d.gif │ b11.gif │ bian1.gif │ biao05.gif │ biaoshi1.gif │ bt724542.gif │ c.gif │ ...
│ adjuggler(5).htm │ adjuggler(6).htm │ adjuggler.htm │ article_count.jsp │ b01.gif │ b01a.gif │ b01d.gif │ b11.gif │ bian1.gif │ biao05.gif │ biaoshi1.gif │ bt724542.gif │ c.gif │ ...
│ adjuggler(5).htm │ adjuggler(6).htm │ adjuggler.htm │ article_count.jsp │ b01.gif │ b01a.gif │ b01d.gif │ b11.gif │ bian1.gif │ biao05.gif │ biaoshi1.gif │ bt724542.gif │ c.gif │ ...
│ adjuggler(5).htm │ adjuggler(6).htm │ adjuggler.htm │ article_count.jsp │ b01.gif │ b01a.gif │ b01d.gif │ b11.gif │ bian1.gif │ biao05.gif │ biaoshi1.gif │ bt724542.gif │ c.gif │ ...
│ adjuggler(5).htm │ adjuggler(6).htm │ adjuggler.htm │ article_count.jsp │ b01.gif │ b01a.gif │ b01d.gif │ b11.gif │ bian1.gif │ biao05.gif │ biaoshi1.gif │ bt724542.gif │ c.gif │ ...