{"id":296,"date":"2011-01-16T08:00:00","date_gmt":"2011-01-16T00:00:00","guid":{"rendered":"http:\/\/www.yuewei.net\/296.html"},"modified":"2011-01-16T08:00:00","modified_gmt":"2011-01-16T00:00:00","slug":"chrome-os-%e5%b1%8f%e4%bf%9d%e5%92%8c%e7%99%bb%e5%bd%95%e7%95%8c%e9%9d%a2-html-5-%e6%ba%90%e7%a0%81%e6%bc%94%e7%a4%ba%e5%92%8c%e4%b8%8b%e8%bd%bd","status":"publish","type":"post","link":"http:\/\/feeng.com\/blog\/296.html","title":{"rendered":"Chrome OS \u5c4f\u4fdd\u548c\u767b\u5f55\u754c\u9762 HTML 5 \u6e90\u7801\u6f14\u793a\u548c\u4e0b\u8f7d"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/pic.yupoo.com\/junofeeng\/AM6ZFuPQ\/jB4qQ.jpg\" width=\"540\" height=\"412\"\/><\/p>\n<p>\u51cc\u6668\u5728<a title=\"\u8c37\u5965-\u63a2\u5bfb\u8c37\u6b4c\u7684\u5965\u79d8\" href=\"http:\/\/www.guao.hk\/posts\/cr-48-chrome-os-screensaver-and-wallpaper.html\" target=\"_blank\" rel=\"noopener noreferrer\">\u8c37\u5965<\/a>\u770b\u5230\u6d88\u606f\uff1a\u5e05\u54e5<a href=\"http:\/\/www.google.com.tr\/profiles\/xslidian\" target=\"_blank\" rel=\"noopener noreferrer\">Dean Lee<\/a>\u63d0\u53d6\u51fa\u4e86Chromium OS\u91cc\u7684\u5c4f\u4fdd\u548c\u767b\u5f55\u754c\u9762\uff0c\u5c4f\u4fdd\uff08horizontal_sparkle\u76ee\u5f55\uff09\uff08\u5982\u4e0a\u56fe\uff09\uff0c\u800c\u767b\u5f55\u754c\u9762\uff08fade_in_out\u76ee\u5f55\uff09\u5219\u662f\u4e00\u4e2a\u53ef\u5728\u968f\u673a\u4f4d\u7f6e\u663e\u793aChromium OS\u7684\u9ed1\u8272\u753b\u9762\u3002\u6548\u679c\u8fd8\u662f\u5f88\u70ab\u7684\u54e6\u3002\u671f\u5f85Google\u653e\u51fa\u7cbe\u7f8e\u7684\u754c\u9762\u4f9b\u9009\u62e9\u3002<a title=\"\u9605\u5fae\u535a\u5ba2\" href=\"http:\/\/www.feeng.com\/blog\/demo\/fade_in_out\/fade_in_out.htm\" target=\"_blank\" rel=\"noopener noreferrer\">\u9605\u5fae\u535a\u5ba2<\/a>\u4e5f\u7b2c\u4e00\u65f6\u95f4\u4e0b\u8f7d\u4f53\u9a8c\u4e86\u3002\u5e76\u4e14\u4e0d\u6562\u72ec\u81ea\u6b23\u8d4f\uff0c\u4e0a\u4f20\u5236\u4f5c\u4e86\u4e24\u4e2ademo\uff1a<\/p>\n<p> <!--more--> <\/p>\n<p>&nbsp;<\/p>\n<p>\u5c4f\u4fdd\uff08horizontal_sparkle\u76ee\u5f55\uff09\u3010<a title=\"horizontal_sparkle@Chrome OS\u5c4f\u4fdddemo\" href=\"http:\/\/www.feeng.com\/blog\/demo\/horizontal_sparkle\/horizontal_sparkle.htm\" target=\"_blank\" rel=\"noopener noreferrer\">Demo1<\/a>\u3011<\/p>\n<p>\u767b\u5f55\u754c\u9762\uff08fade_in_out\u76ee\u5f55\uff09&nbsp; \u3010<a title=\"fade_in_out@Chrome OS\u767b\u5f55\u754c\u9762demo\" href=\"http:\/\/www.feeng.com\/blog\/demo\/fade_in_out\/fade_in_out.htm\" target=\"_blank\" rel=\"noopener noreferrer\">Demo2<\/a>\u3011&nbsp; <\/p>\n<p>\u53e6\u5916Dean Lee\u7ae5\u978b\u535a\u5ba2\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4efd\u5f88\u7ed9\u529b\u7684<a title=\"Chromium OS \u5f00\u53d1\u6307\u5357@Dean Lee\" href=\"http:\/\/lidian.info\/wiki\/Chromium_OS\/developer_guide\" target=\"_blank\" rel=\"noopener noreferrer\">Chromium OS \u5f00\u53d1\u6307\u5357<\/a><strong><\/strong>\uff08\u542b\u7f16\u8bd1\u6307\u5357\uff09\u3002\u7a00\u996d\u7684\u7ae5\u978b\u8d76\u7d27\u706b\u901f\u56f4\u89c2\u54e6~~~<\/p>\n<p>\u8981\u4e0b\u8f7d\u6e90\u6587\u4ef6<a title=\"Chrome OS \u5c4f\u4fdd\u548c\u767b\u5f55\u754c\u9762 HTML 5 \u7f51\u9875\u4e0b\u8f7d\" href=\"http:\/\/download.midifan.com\/download\/chromiumos-assets.7z\" target=\"_blank\" rel=\"noopener noreferrer\">\u70b9\u51fb\u8fd9\u91cc<\/a>\uff0c\u628a\u5c4f\u4fdd\u7684\u6e90\u7801\u5206\u4eab\u5982\u4e0b\uff1a<\/p>\n<p>&lt;html&gt; <br \/>&lt;head&gt; <br \/>&lt;script type=&#8221;text\/javascript&#8221;&gt; <br \/>var canvas;<br \/>var g;<br \/>var rate = 5;<br \/>var mouseX = 0;<br \/>var mouseY = 0; <br \/>var pmouseX = 0;<br \/>var pmouseY = 0;<br \/>var width, height;<br \/>var mousePressed = false;<br \/>&nbsp;<br \/>var hexes = [];<br \/>&nbsp;<br \/>function setup() {<br \/>&nbsp; canvas = document.createElement(&#8220;canvas&#8221;);<br \/>&nbsp; document.body.appendChild(canvas);<br \/>&nbsp; g = canvas.getContext(&#8220;2d&#8221;);<br \/>&nbsp; setInterval(draw, rate);&nbsp;&nbsp;&nbsp; <br \/>&nbsp; document.addEventListener(&#8216;mousemove&#8217;, onDocumentMouseMove, false);<br \/>&nbsp; document.addEventListener(&#8216;mousedown&#8217;, onDocumentMouseDown, false);<br \/>&nbsp; document.addEventListener(&#8216;mouseup&#8217;, onDocumentMouseUp, false); <br \/>&nbsp; window.addEventListener(&#8216;resize&#8217;, onWindowResize, false);<br \/>&nbsp; onWindowResize();<br \/>&nbsp; \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br \/>&nbsp; while (hexes.length &lt; 200) {<br \/>&nbsp;&nbsp;&nbsp; hexes.push(new Hex());<br \/>&nbsp; }<br \/>}<br \/>function onWindowResize(e) {<br \/>&nbsp; width = canvas.width = window.innerWidth;<br \/>&nbsp; height = canvas.height = window.innerHeight;<br \/>}<br \/>function onDocumentMouseMove(e) {<br \/>&nbsp; pmouseX = mouseX;<br \/>&nbsp; pmouseY = mouseY;<br \/>&nbsp; mouseX = e.pageX;<br \/>&nbsp; mouseY = e.pageY;<br \/>}<br \/>function onDocumentMouseDown(e) { <br \/>&nbsp; mousePressed = true;<br \/>}<br \/>function onDocumentMouseUp(e) { <br \/>&nbsp; mousePressed = false;<br \/>}<br \/>&nbsp;<br \/>function dist(x, y, xx, yy) {<br \/>&nbsp; return Math.sqrt((xx-x)*(xx-x)+(yy-y)*(yy-y));<br \/>}<br \/>&nbsp;<br \/>function constrain(v, min, max){<br \/>&nbsp; if(v&lt;min) v = min;<br \/>&nbsp; if(v&gt;max) v = max;<br \/>&nbsp; return v;<br \/>}<br \/>&nbsp;<br \/>function map(v, i1, i2, o1, o2) {<br \/>&nbsp; return o1 + (o2 &#8211; o1) * ((v &#8211; i1) \/ (i2 &#8211; i1));<br \/>}<br \/>&nbsp;<br \/>function random(a, b) {<br \/>&nbsp; var r = Math.random();<br \/>&nbsp; if (a instanceof Array) {<br \/>&nbsp;&nbsp;&nbsp; var i = Math.floor(r*a.length);<br \/>&nbsp;&nbsp;&nbsp; return a[i];<br \/>&nbsp; } else if (b == undefined) {<br \/>&nbsp;&nbsp;&nbsp; return r*a;<br \/>&nbsp; } else { <br \/>&nbsp;&nbsp;&nbsp; return r*(a+b)-a;<br \/>&nbsp; }<br \/>}<br \/>var cx = -200;<br \/>function draw() {<br \/>&nbsp; g.globalCompositeOperation = &#8220;source-over&#8221;; <br \/>&nbsp; g.fillStyle= &#8220;#000&#8221;;<br \/>&nbsp; g.fillRect(0, 0, width, height);<br \/>&nbsp; g.globalCompositeOperation = &#8220;lighter&#8221;; <br \/>&nbsp; for (var h in hexes) {<br \/>&nbsp;&nbsp;&nbsp; hexes[h].update();<br \/>&nbsp;&nbsp;&nbsp; hexes[h].draw();<br \/>&nbsp; }<br \/>&nbsp; cx += 8;<br \/>&nbsp; if (cx &gt; width+200) {<br \/>&nbsp;&nbsp;&nbsp; cx = -200;<br \/>&nbsp; }<br \/>}<br \/>&nbsp;<br \/>function roundedHex(x,y, d) {<br \/>&nbsp; var sides = 6;<br \/>&nbsp; var a = Math.PI*2\/sides;<br \/>&nbsp; var aa = a;<br \/>&nbsp; var r = 10;<br \/>&nbsp; g.beginPath();<br \/>&nbsp; g.save();<br \/>&nbsp; g.translate(x, y);<br \/>&nbsp; g.moveTo(Math.cos(aa)*d, Math.sin(aa)*d);<br \/>&nbsp; for (var i = 0; i &lt; sides; i++) {<br \/>&nbsp;&nbsp;&nbsp; aa += a;<br \/>&nbsp;&nbsp;&nbsp; g.lineTo(Math.cos(aa)*d, Math.sin(aa)*d);<br \/>&nbsp; }<br \/>&nbsp; g.fill();<br \/>&nbsp; g.restore();<br \/>&nbsp; g.closePath();<br \/>}<br \/>&nbsp;<br \/>var colors = [&#8220;#e4463b&#8221;, &#8220;#fffc23&#8221;, &#8220;#5ad81c&#8221;, &#8220;#1c8bd8&#8221;];<br \/>var s = 80;<br \/>var rows = 20;<br \/>var cols = 10;<br \/>function Hex() {<br \/>&nbsp; this.x = (hexes.length%rows)*s;<br \/>&nbsp; this.y = Math.floor(hexes.length\/rows)*s*0.865;<br \/>&nbsp; this.color = random(colors);<br \/>&nbsp; this.ss = 0;<br \/>&nbsp; this.draw = function() {<br \/>&nbsp;&nbsp;&nbsp; var radgrad2 = g.createRadialGradient(0,0,0,0,0,this.ss*1.5);\/\/g.createRadialGradient(this.x,this.y,0,this.x,this.y,this.s);<br \/>&nbsp;&nbsp;&nbsp; radgrad2.addColorStop(0, this.color);<br \/>&nbsp;&nbsp;&nbsp; radgrad2.addColorStop(1, &#8220;#000&#8221;);<br \/>&nbsp;&nbsp;&nbsp; g.fillStyle = radgrad2;<br \/>&nbsp;&nbsp;&nbsp; if (this.ss &gt; 0) {<br \/>&nbsp;&nbsp;&nbsp; roundedHex(this.x, this.y, this.ss);<br \/>&nbsp;&nbsp;&nbsp; }<br \/>&nbsp; }<br \/>&nbsp; <br \/>&nbsp; this.update = function() {<br \/>&nbsp;&nbsp;&nbsp; var d = dist(cx, height\/2.3, this.x, this.y);<br \/>&nbsp;&nbsp;&nbsp; d = constrain(d, 0, 200);<br \/>&nbsp;&nbsp;&nbsp; var x = map(d, 200, 0, 0, s*2);<br \/>&nbsp;&nbsp;&nbsp; this.ss += (x-this.ss)*0.5;<br \/>&nbsp; }<br \/>&nbsp; <br \/>}<br \/>&lt;\/script&gt; <br \/>&lt;style type=&#8221;text\/css&#8221;&gt; <br \/>* { <br \/>margin: 0;<br \/>padding: 0;<br \/>}<br \/>html, body { <br \/>width: 100%;<br \/>background-color: #000;<br \/>height: 100%;<br \/>}<br \/>img { <br \/>position: absolute;<br \/>&nbsp; left: 50%;<br \/>&nbsp; margin-left: -90px;<br \/>&nbsp; padding-top: 470px;<br \/>}<br \/>&lt;\/style&gt; <br \/>&lt;\/head&gt; <br \/>&lt;body onload=&#8221;setup()&#8221;&gt; <br \/>&lt;img src=&#8221;title.png&#8221; alt=&#8221;&#8221; width=&#8221;180&#8243;\/&gt; <br \/>&lt;\/body&gt; <br \/>&lt;\/html&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u51cc\u6668\u5728\u8c37\u5965\u770b\u5230\u6d88\u606f\uff1a\u5e05\u54e5Dean Lee\u63d0\u53d6\u51fa\u4e86Chromium OS\u91cc\u7684\u5c4f\u4fdd\u548c\u767b\u5f55\u754c\u9762\uff0c\u5c4f\u4fdd\uff08horizontal_sparkle\u76ee\u5f55\uff09\uff08\u5982\u4e0a\u56fe\uff09\uff0c&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[16,27],"_links":{"self":[{"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/posts\/296"}],"collection":[{"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/comments?post=296"}],"version-history":[{"count":0,"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/posts\/296\/revisions"}],"wp:attachment":[{"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/media?parent=296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/categories?post=296"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/feeng.com\/blog\/wp-json\/wp\/v2\/tags?post=296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}