HTML5初級(jí)知識(shí)總結(jié)

1.canvas繪制

步驟

  • 添加canvas元素,定義id和范圍
  • js里獲取canvas元素
  • 通過getContext()方法獲取2D繪制環(huán)境
  • 通過不同的函數(shù)進(jìn)行圖形繪制

坐標(biāo)定位

  • 繪制的圖形定位都是以canvas的左上角為(0,0)原點(diǎn)

繪制直線

  • moveTo(): 規(guī)定起始點(diǎn)
  • lineTo(): 從起點(diǎn)繪制到規(guī)定坐標(biāo)的直線
  • stroke(): 實(shí)現(xiàn)繪制直線的功能
  • fill(): 實(shí)現(xiàn)填充功能

實(shí)例:繪制一個(gè)三角形

html代碼

<body>
    <canvas id="canvas"></canvas>
</body>

js代碼

window.onload = function(){
  var canvas =  document.getElementById("canvas");
  canvas.width = 800;
  canvas.height = 800;
  var context  = canvas.getContext('2d');
  
  context.strokeStyle = "red";
  context.moveTo(100, 100);
  context.lineTo(200, 100);
  context.lineTo(150,50);
  context.lineTo(100,100);
  context.stroke();
};
1.png

繪制矩形

  • fillStyle():設(shè)置矩形填充顏色温圆。
  • fillRect(x,y,width,height)雕崩。
  • strokeStyle():設(shè)置矩形輪廓顏色瘟栖。
  • strokeRect(x,y,width,height)。

繪制圓形(弧形)

  • beginPath():開始繪制路線
  • arc(x,y,radius,startAngle,endAngle,anticlockwise)
    設(shè)置繪制的中心點(diǎn),半徑倒槐,起始角度同窘,結(jié)束角度和繪制方向玄帕。

貝塞爾曲線

二次貝塞爾曲線

  • quadraticCurveTo(cp1x,cp1y,x,y)
    cp1x,cp1y 表示一個(gè)控制點(diǎn)坐標(biāo);x,y代表終點(diǎn)坐標(biāo)。

三次貝塞爾曲線

  • bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)
    cp1x,cp1y和cp2x,cp2y分別代表
    兩個(gè)控制點(diǎn)想邦。

實(shí)例1:繪制一個(gè)五角星

window.onload = function() {
    var canvas = document.getElementById("canvas");
    var context = canvas.getContext('2d');
    drawStar(context, 120, 120, 80, 30, 10, "yellow", 0);
}

function drawStar(context, x, y, R, r, width, color, rotation) {

    context.beginPath();
    for (var i = 0; i < 5; i++) {
        context.lineTo(Math.cos((18 + i * 72 - rotation) / 180 * Math.PI) * R + x, -Math.sin((18 + i * 72 - rotation) / 180 * Math.PI) * R + y);
        context.lineTo(Math.cos((54 + i * 72 - rotation) / 180 * Math.PI) * r + x, -Math.sin((54 + i * 72 - rotation) / 180 * Math.PI) * r + y);
    }
    context.closePath();
    context.lineWidth = width;
    context.fillStyle = color;
    context.fill();
}
2.png

實(shí)例2:繪制寶馬標(biāo)志

window.onload = function() {
    var canvas = document.getElementById("canvas");
    canvas.width = 800;
    canvas.height = 800;
    var context = canvas.getContext('2d');

    //圓心坐標(biāo)x,y  內(nèi)圓半徑r  外圓半徑R
    var x = 100;
    var y = 100;
    var r = 100;
    var R = r + 50;
    var colors = Array("#87CEFA", "#FAFAFA", "#000");

    context.beginPath();
    context.translate(100, 100);
    context.arc(x, y, R, 0, Math.PI * 2);
    line_gra = context.createLinearGradient(-10, -10,20, 50);
    line_gra.addColorStop(0, "#ddd");
    line_gra.addColorStop(1, "#262626");
    context.lineWidth = 3;
    context.strokeStyle = "#000";
    context.fillStyle = line_gra;
    context.closePath();
    context.stroke();
    context.fill();
    
    drawBigRound(context, x, y, r, 53, "#ADD8E6", 7);
    drawBm(context, x, y, r, colors);
    drawBigRound(context, x, y, r, 3, "#9FB6CD", 5);

    context.beginPath();
    context.fillStyle = "#fff";
    context.font = "bold 40px verdana";
    context.fillText("M", 80, -10);
    context.rotate(Math.PI / 6);
    context.fillText("W", 125, -75);
    context.rotate(-(Math.PI / 2));
    context.fillText("B", 0, 35);
    context.restore();

}

function drawBm(context, x, y, r, colors) {
    var color;
    for (var i = 0; i < 4; i++) {
        context.beginPath();
        context.moveTo(x, y);
        context.arc(x, y, r, Math.PI * i / 2, Math.PI * (i + 1) / 2);
        if (i == 0 || i == 2) {
            color = colors[0];
        } else {
            color = colors[1];
        }
        context.fillStyle = color;
        context.lineWidth = 2;
        context.strokeStyle = colors[2];
        context.closePath();
        context.fill();
        context.stroke();
    }

}

function drawBigRound(context, x, y, r, addr, color, lineWidth) {
    context.beginPath();
    context.arc(x, y, r + addr, 0, Math.PI * 2);
    context.lineWidth = lineWidth;
    context.strokeStyle = color;
    context.closePath();
    context.stroke();
}
bm.png

2.CSS3 陰影 box-shadow

box-shadow: h-shadow v-shadow blur spread color inset;

  • h-shadow 必需裤纹。水平陰影的位置。允許負(fù)值丧没。
  • v-shadow 必需鹰椒。垂直陰影的位置。允許負(fù)值呕童。
  • blur 可選漆际。模糊距離。
  • spread 可選夺饲。陰影的尺寸奸汇。
  • color 可選。陰影的顏色钞支。請(qǐng)參閱 CSS 顏色值茫蛹。
  • inset 可選。將外部陰影 (outset) 改為內(nèi)部陰影烁挟。

3.CSS3 transform屬性

transform: none|transform-functions;

  • transform:rotate(): 旋轉(zhuǎn),deg是度的意思
      transform: rotate(-10deg);
  • transform:skew(): 傾斜

        transform:skew(20deg);
    
  • transform:scale(): 縮放,x方向2倍婴洼,y方向1.5倍

        transform: scale(2, 1.5);
    
  • transform:translate(): 平移,x方向平移120px,y方向平移10px

        transform:translate(120px,10px);
    

4.CSS3 transtion屬性

transition: property duration timing-function delay;

  • transition-property 規(guī)定設(shè)置過渡效果的 CSS 屬性的名稱撼嗓。
  • transition-duration 規(guī)定完成過渡效果需要多少秒或毫秒柬采。
  • transition-timing-function 規(guī)定速度效果的速度曲線。
  • transition-delay 定義過渡效果何時(shí)開始且警。
div
{
    width:100px;
    transition: width 2s;
    -moz-transition: width 2s; /* Firefox 4 */
    -webkit-transition: width 2s; /* Safari 和 Chrome */
    -o-transition: width 2s; /* Opera */
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粉捻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子斑芜,更是在濱河造成了極大的恐慌肩刃,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異盈包,居然都是意外死亡沸呐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門呢燥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崭添,“玉大人,你說我怎么就攤上這事叛氨『粼” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵寞埠,是天一觀的道長(zhǎng)屁置。 經(jīng)常有香客問我,道長(zhǎng)仁连,這世上最難降的妖魔是什么缰犁? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮怖糊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘颇象。我一直安慰自己伍伤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布遣钳。 她就那樣靜靜地躺著扰魂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蕴茴。 梳的紋絲不亂的頭發(fā)上劝评,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音倦淀,去河邊找鬼蒋畜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛撞叽,可吹牛的內(nèi)容都是我干的姻成。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼愿棋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼科展!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起糠雨,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤才睹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琅攘,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垮庐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乎澄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片突硝。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖置济,靈堂內(nèi)的尸體忽然破棺而出解恰,到底是詐尸還是另有隱情,我是刑警寧澤浙于,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布护盈,位于F島的核電站,受9級(jí)特大地震影響羞酗,放射性物質(zhì)發(fā)生泄漏腐宋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一檀轨、第九天 我趴在偏房一處隱蔽的房頂上張望胸竞。 院中可真熱鬧,春花似錦参萄、人聲如沸卫枝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽校赤。三九已至,卻和暖如春筒溃,著一層夾襖步出監(jiān)牢的瞬間马篮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工怜奖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浑测,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓烦周,卻偏偏與公主長(zhǎng)得像尽爆,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子读慎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載請(qǐng)聲明 原文鏈接 關(guān)注公眾號(hào)獲取更多資訊 這篇文章主要總結(jié)H5的一些新增的功能以及一些基礎(chǔ)歸納漱贱,這里只是一個(gè)提...
    程序員poetry閱讀 9,074評(píng)論 22 225
  • 書中代碼示例效果展示:Core HTML5 Canvas Examples 基礎(chǔ)知識(shí) canvas元素 canva...
    szu_bee閱讀 2,844評(píng)論 2 28
  • 1.CSS3 邊框 border-radius CSS屬性用來設(shè)置邊框圓角。當(dāng)使用一個(gè)半徑時(shí)確定一個(gè)圓形夭委;當(dāng)使用兩...
    garble閱讀 648評(píng)論 0 0
  • 一:canvas簡(jiǎn)介 1.1什么是canvas幅狮? ①:canvas是HTML5提供的一種新標(biāo)簽 ②:HTML5 ...
    GreenHand1閱讀 4,693評(píng)論 2 32
  • 【一階段·片段五】 片段選自高琳的職場(chǎng)實(shí)用指南《職得》崇摄,高琳是一個(gè)有20多年世界500強(qiáng)公司工作經(jīng)驗(yàn)的一個(gè)女士擎值。她...
    小俊愛誠誠閱讀 193評(píng)論 3 0