
<!DOCTYPE html>
<html lang="zh" ><head>
<meta charset="gbk" />
<title>HTML5 五彩光盘</title>
<script>
// Get angle color function
function getAngleColor(angle) {
var color, d
if (angle < Math.PI * 2 / 5) { // angle: 0-72
d = 255 / (Math.PI * 2 / 5) * angle
color = '255,' + Math.round(d) + ',0' // color: 255,0,0 - 255,255,0
} else if (angle < Math.PI * 4 / 5) { // angle: 72-144
d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 2 / 5)
color = (255 - Math.round(d)) + ',255,0' // color: 255,255,0 - 0,255,0
} else if (angle < Math.PI * 6 / 5) { // angle: 144-216
d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 4 / 5)
color = '0,255,' + Math.round(d) // color: 0,255,0 - 0,255,255
} else if (angle < Math.PI * 8 / 5) { // angle: 216-288
d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 6 / 5)
color = '0,'+(255 - Math.round(d)) + ',255' // color: 0,255,255 - 0,0,255
} else { // angle: 288-360
d = 255 / (Math.PI * 2 / 5) * (angle - Math.PI * 8 / 5)
color = Math.round(d) + ',0,' + (255 - Math.round(d)) // color: 0,0,255 - 255,0,0
}
return color
}
var iSectors = 360
var iSectorAngle = (360/iSectors)/180 * Math.PI // in radians
function drawGradient(){
var canvas = document.getElementById('gradient')
var ctx = canvas.getContext('2d')
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height)
ctx.save()
ctx.translate(canvas.width/2, canvas.height/2)
for (var i = 0 i< iSectors i++) {
var startAngle = 0
var endAngle = startAngle + iSectorAngle
var radius = (canvas.width/2) - 1
var color = getAngleColor(iSectorAngle * i)
ctx.beginPath()
ctx.moveTo(0, 0)
ctx.arc(0, 0, radius, startAngle, endAngle, false)
ctx.closePath()
ctx.strokeStyle = 'rgb('+color+')'
ctx.stroke()
ctx.fillStyle = 'rgb('+color+')'
ctx.fill()
ctx.rotate(iSectorAngle)
}
ctx.restore()
}
if(window.attachEvent) {
window.attachEvent('onload', drawGradient)
} else {
if(window.onload) {
var curronload = window.onload
var newonload = function() {
curronload()
drawGradient()
}
window.onload = newonload
} else {
window.onload = drawGradient
}
}
</script> </head>
<body>
<div class="container">
<canvas id="gradient" width="500" height="500" tabindex="1">你的浏览器不支持HTML5</canvas>
</div>
</body>
</html>
上面是一个五彩光盘.想查看更多效果可以访问 : http://www.108js.com/example.html.
希望对你有用.谢谢
1、SEO(搜索引擎优化)得到提升一些常用的图形效果有CSS3表达方式,包括不透明贴图、圆角、阴影。这些效果与CSS3渐变色一起使得上传更为简洁,跨平台维护也更为容易。此外,它们还在SEO(搜索引擎优化)方面具有优势。
为了理解SEO,我们还要回到刚才提到的渐变色。CSS3渐变色的另一个优势是它们可以更好的向下兼容源代码控制系统(SCCS)。在CSS3出现之前,渐变色通过图片实现。在常用的SCCS中调整图片是一个不透明的过程。
通过CSS3的渐变色语义标记,SCCS能够很方便在表面渐变的文本进行 *** 作。SCCS能够在特定时间自动报告,渐变色彩的变化或是饱和度。其格式如下:
这上优势也提升了不透明贴图和其它的CSS3标记。假设一个名为Acme Widgets的公司想通过不透明贴图在其网页上标记公司的名称。在CSS3出现之前,他们需要使用Photoshop或类似工具才行,这导致需要设计一个图片,通过一张不透明的贴图显示Acme Widgets。
由于内容是内嵌在图片中的,因此Acme Widgets根据无法被搜索引擎找到。CSS3的出现改变了这一情况。
2、更快的图片下载速度,尤其是对于移动用户
在网页设计中,“渐变”是一种背景效果:你的网页上的“窗口”拥有更精致的底纹或纹理。公司设计人员有更大的空间来平衡明暗度、匹配边界,实现让大数浏览者叹为观止的色彩或风格。
渐变效果的头二十年是通过“着色”来取得的。在HTML5之前,背景必须作为一个图片(或是由多个子图叠加在一起)被提供。例如,Photoshop有一个“渐变工具”。该工具主要用于构建一个背景图片以作为渐变色使用。这一功能获得了很大的成功。每一名称职的网页设计者通常都会使用已经有的渐变色作为背景图片。
首先,其非常简洁。CSS3渐变规范通常有数百个字节,而表达渐变的背景图片通常会有数千个字节。除了这一优势外,CSS3的是渐变是内联的,其传输不需要打开其它的文件。当大量网站浏览者通过带宽有限的移动浏览器访问时,让用于网页渲染的辅助连接的数量保持低水平对于提升性能非常关键。
你的网页设计人员能够像以往那样做同样的事情--使用Photoshop的渐变工具或是类似工具,然后导出至CSS3而不是HTML4或XHTML。终端用户在他们的浏览器上的效果几乎没有什么差别,但是下载速度却提升了许多。此外,CSS3渐变色还能够更容易的生就不同的屏幕尺寸和各种分辨率。
其它技术优势还包括:
总体上,其能够内联老式的渐变色,因此能够减少下载成本。
?除了CSS3之外,HTML5还包括了其它的渐变效果。
渐变色的CSS3支持将可编程性提升到了一个新的水平。例如,设计人员可以根据浏览者的年龄和位置调整渐变背景。
3、Web应用开发更容易,尤其是移动应用
最后一个优势是,HTML5解决方案是一个可媲美原生应用的编程环境。这对于移动终端用户来说非常重要,原生应用开发成本昂贵:其编程人员薪水高、许可证各类繁多,可移植性差。HTML5在优势在于许多应用能够被完整的编在HTML5内。
4、更精美的动画效果
除了上面所提到的功能外,其特色功能还包括:
HTML5能够以更低的成本和更短的下载时间展现媲美目前顶级网页设计人员设计的外观,语义标记具有SEO和维护优势。HTML5现在拥有的一些效果已经超越早期标准的效果,其中之一就是动画制作。
为了获得精美的动画效果,网页团队过去通常使用Flash。不过,Flash也有一些明显的不足:搜索引擎无法索引,苹果的iOS和 *** 作系统不允许使用Flash。安全性和许可证限制了其在许多公司中的使用。通过HTML5,精美的可视化动画可以成为语义动画。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)