IE9下html5初試小刀
發(fā)布時(shí)間:2010-09-21 21:50:34 作者:佚名
我要評(píng)論
微軟不大張旗鼓支持的技術(shù)我就不去嘗試,等微軟一說要支持了我就要嘗試了。可能是跟著微軟的路線走習(xí)慣了吧,不過想想挺傻的。
mvc是個(gè)好東西,為什么一入行的時(shí)候不去學(xué)一下,非要等到asp.net mvc出來了才去學(xué);orm是個(gè)好東西,干嘛非要等到EF出來了才去學(xué);html5是個(gè)好東西,干嘛非要等到IE9出來了才去學(xué)?......
——我想自己應(yīng)該改掉這個(gè)壞毛病。
廢話不多說了。
需求:模仿dreamweaver里為圖片畫上錨點(diǎn)的功能,生成html代碼里的coords值的功能。
技術(shù)分析:直覺告訴我,html5 canvas可以勝任。
由于從來沒實(shí)質(zhì)性接觸過canvas,只看過別人用canvas開發(fā)的demo,只好bing一下html5 canvas的教程咯。發(fā)現(xiàn)了下面的鏈接:http://kb.operachina.com/node/190
看完文檔寫代碼:
代碼分析:
1.1 html:要用一個(gè)圖片作底,canvas放在它上面以供畫圖
1.2 css:你起碼要位置放對(duì)、該透明的地方透明
1.3 javascript:鼠標(biāo)事件要響應(yīng)仨:mousedown,mousemove,mouseup
<div id="container">
<img id="bg" width="390" height="560" src="http://www.sh1800.net/NavPic/20100917.jpg" />
<canvas id="drewpanel" width="390" height="560">
<p>some info to tell the people whose broswer doesn't support html5</p>
</canvas>
</div>
有經(jīng)驗(yàn)的同學(xué)可能一看這html5代碼就知道這注定是個(gè)悲劇,當(dāng)有img元素在canvas下面時(shí),不管怎樣canvas就是不透明,忘記了canvas上可不可以畫上東西了,應(yīng)該也是不行的??磥磉@canvas元素有“潔癖”,不愿和其他低級(jí)元素同流合污。就算我要退而求其次,作為cantainer的背景元素出現(xiàn)都不行。我的感覺是這個(gè)canvas可能不會(huì)對(duì)其他元素透明的。所以上面的代碼其實(shí)是錯(cuò)誤的代碼...
那怎么樣才能實(shí)現(xiàn)類似photoshop里圖層的效果呢?那就是多弄幾個(gè)canvas元素,把上面的img換成canvas,然后把img繪制到這個(gè)canvas上,這樣canvas對(duì)canvas就是透明的了。哎...代碼如下:
<div id="container">
<canvas id="bg" width="390" height="560"></canvas>
<canvas id="drewpanel" width="390" height="560">
<p>some info to tell the people whose broswer doesn't support html5</p>
</canvas>
</div>
好了html算是搞定了,接下去就是往canvas上繪圖,借助于javascript,這個(gè)任務(wù)非常簡單。
window.addEventListener('load', function () {
// Get the canvas element.
var elem = document.getElementById('bg');
if (!elem || !elem.getContext) {
return;
}
// Get the canvas 2d context.
var context = elem.getContext('2d');
if (!context || !context.drawImage) {
return;
}
// Create a new image.
var img = new Image();
// Once it's loaded draw the image on the canvas.
img.addEventListener('load', function () {
// Original resolution: x, y.
context.drawImage(this, 0, 0);
// Now resize the image: x, y, w, h.
context.drawImage(this, 160, 0, 120, 70);
// Crop and resize the image: sx, sy, sw, sh, dx, dy, dw, dh.
context.drawImage(this, 8, 20, 140, 50, 0, 150, 350, 70);
}, false);
img.src = 'http://www.sh1800.net/NavPic/20100917.jpg';
}, false);
//直接在文檔里拿下來的代碼 請(qǐng)注意為了opera和ie9 onload事件是必須要的,不然圖片會(huì)是一片空白,當(dāng)然Chrome下不會(huì)這樣
未完待續(xù)....
原文地址 http://www.cnblogs.com/ice6/archive/2010/09/18/1830020.html
——我想自己應(yīng)該改掉這個(gè)壞毛病。
廢話不多說了。
需求:模仿dreamweaver里為圖片畫上錨點(diǎn)的功能,生成html代碼里的coords值的功能。
技術(shù)分析:直覺告訴我,html5 canvas可以勝任。
由于從來沒實(shí)質(zhì)性接觸過canvas,只看過別人用canvas開發(fā)的demo,只好bing一下html5 canvas的教程咯。發(fā)現(xiàn)了下面的鏈接:http://kb.operachina.com/node/190
看完文檔寫代碼:
代碼分析:
1.1 html:要用一個(gè)圖片作底,canvas放在它上面以供畫圖
1.2 css:你起碼要位置放對(duì)、該透明的地方透明
1.3 javascript:鼠標(biāo)事件要響應(yīng)仨:mousedown,mousemove,mouseup
復(fù)制代碼
代碼如下:<div id="container">
<img id="bg" width="390" height="560" src="http://www.sh1800.net/NavPic/20100917.jpg" />
<canvas id="drewpanel" width="390" height="560">
<p>some info to tell the people whose broswer doesn't support html5</p>
</canvas>
</div>
有經(jīng)驗(yàn)的同學(xué)可能一看這html5代碼就知道這注定是個(gè)悲劇,當(dāng)有img元素在canvas下面時(shí),不管怎樣canvas就是不透明,忘記了canvas上可不可以畫上東西了,應(yīng)該也是不行的??磥磉@canvas元素有“潔癖”,不愿和其他低級(jí)元素同流合污。就算我要退而求其次,作為cantainer的背景元素出現(xiàn)都不行。我的感覺是這個(gè)canvas可能不會(huì)對(duì)其他元素透明的。所以上面的代碼其實(shí)是錯(cuò)誤的代碼...
那怎么樣才能實(shí)現(xiàn)類似photoshop里圖層的效果呢?那就是多弄幾個(gè)canvas元素,把上面的img換成canvas,然后把img繪制到這個(gè)canvas上,這樣canvas對(duì)canvas就是透明的了。哎...代碼如下:
復(fù)制代碼
代碼如下:<div id="container">
<canvas id="bg" width="390" height="560"></canvas>
<canvas id="drewpanel" width="390" height="560">
<p>some info to tell the people whose broswer doesn't support html5</p>
</canvas>
</div>
好了html算是搞定了,接下去就是往canvas上繪圖,借助于javascript,這個(gè)任務(wù)非常簡單。
復(fù)制代碼
代碼如下:window.addEventListener('load', function () {
// Get the canvas element.
var elem = document.getElementById('bg');
if (!elem || !elem.getContext) {
return;
}
// Get the canvas 2d context.
var context = elem.getContext('2d');
if (!context || !context.drawImage) {
return;
}
// Create a new image.
var img = new Image();
// Once it's loaded draw the image on the canvas.
img.addEventListener('load', function () {
// Original resolution: x, y.
context.drawImage(this, 0, 0);
// Now resize the image: x, y, w, h.
context.drawImage(this, 160, 0, 120, 70);
// Crop and resize the image: sx, sy, sw, sh, dx, dy, dw, dh.
context.drawImage(this, 8, 20, 140, 50, 0, 150, 350, 70);
}, false);
img.src = 'http://www.sh1800.net/NavPic/20100917.jpg';
}, false);
//直接在文檔里拿下來的代碼 請(qǐng)注意為了opera和ie9 onload事件是必須要的,不然圖片會(huì)是一片空白,當(dāng)然Chrome下不會(huì)這樣
未完待續(xù)....
原文地址 http://www.cnblogs.com/ice6/archive/2010/09/18/1830020.html
相關(guān)文章
- Microdata作為HTML5新增的一個(gè)特性,它允許開發(fā)者在HTML文檔中添加更多的語義信息,以便于搜索引擎和瀏覽器更好地理解頁面內(nèi)容,本文將探討HTML5中Microdata的使用方法以及2025-04-21
在HTML語法中,表格主要通過< table >、< tr >和< td >3個(gè)標(biāo)簽構(gòu)成,本文通過實(shí)例代碼講解HTML5表格語法格式,感興趣的朋友一起看看吧2025-04-21- 這篇文章主要介紹了HTML5中使用媒體查詢和Flexbox進(jìn)行響應(yīng)式布局的方法,簡要介紹了CSS Grid布局的基礎(chǔ)知識(shí)和如何實(shí)現(xiàn)自動(dòng)換行的網(wǎng)格布局,感興趣的朋友一起看看吧2025-04-21

基于Canvas的Html5多時(shí)區(qū)動(dòng)態(tài)時(shí)鐘實(shí)戰(zhàn)代碼
本文介紹了如何使用Canvas在HTML5上實(shí)現(xiàn)一個(gè)多時(shí)區(qū)動(dòng)態(tài)時(shí)鐘的web展示,通過Canvas的API,可以繪制出6個(gè)不同城市的時(shí)鐘,并且這些時(shí)鐘可以動(dòng)態(tài)轉(zhuǎn)動(dòng),每個(gè)時(shí)鐘上都會(huì)標(biāo)注出對(duì)應(yīng)的2025-03-11HTML5 data-*自定義數(shù)據(jù)屬性的示例代碼
HTML5的自定義數(shù)據(jù)屬性(data-*)提供了一種標(biāo)準(zhǔn)化的方法在HTML元素上存儲(chǔ)額外信息,可以通過JavaScript訪問、修改和在CSS中使用,文章還介紹了高級(jí)用法,如存儲(chǔ)JSON數(shù)據(jù)、事2025-03-11HTML5中下拉框<select>標(biāo)簽的屬性和樣式詳解
在HTML5中,下拉框(<select>標(biāo)簽)作為表單的重要組成部分,為用戶提供了一個(gè)從預(yù)定義選項(xiàng)中選擇值的方式,本文將深入探討<select>標(biāo)簽的屬性、樣式,并重點(diǎn)介2025-02-27
本文介紹了HTML5InputDatePicker對(duì)象表示HTML``元素,是HTML5中的新對(duì)象,介紹了日期、周、月份、時(shí)間、日期+時(shí)間、本地日期時(shí)間等不同類型的日期選擇器,感興趣的朋友一起看2025-02-17
本文介紹了HTML5中的超鏈接、相對(duì)路徑和圖片的使用方法,超鏈接可以創(chuàng)建指向另一個(gè)文檔或頁面內(nèi)部書簽的鏈接,相對(duì)路徑用于在同一服務(wù)器內(nèi)部跳轉(zhuǎn)頁面,圖片標(biāo)簽用于引入外部圖2025-02-17- 本文介紹了HTML5超鏈接的創(chuàng)建方法,包括基本語法、創(chuàng)建圖像超鏈接的邊框去除方法以及錨點(diǎn)鏈接的使用,還討論了超鏈接的四種不同狀態(tài)(link、visited、hover、active)的CSS樣2025-02-17

HTML5使用details標(biāo)簽:展開/收縮信息
最近看一些技術(shù)網(wǎng)站發(fā)現(xiàn)了details 標(biāo)簽的妙用,這個(gè)不用js即可實(shí)現(xiàn)展開/收縮信息,很方便用來讓用戶先才答案,然后下面點(diǎn)擊再給出答案的效果,這里就為大家簡單介紹一下,2024-11-03






