HTML5 + CSS3

一、新增事件

文件拖拽:
    ondragover:    拖在上面
    ondragenter:    拖進(jìn)去
    ondragleave:    拖出來(lái)
    ondrop:          鼠標(biāo)釋放(如果想讓ondrop事件觸發(fā)就必須要先阻止ondragover的默認(rèn)行為)
獲取文件信息:
    oEle.ondrop = function(ev){
        ev.dataTransfer.files    所有的文件列表
        var oFile = ev.dataTransfer.files[0];  獲取文件列表中的第一個(gè)文件
    }
    文件信息:
    oFile.name        文件的名字
    oFiles.size        文件的大小
    oFiles.type        文件類型
        電腦識(shí)別的文件類型是MIME-type
        而不是:text/plain   image/gif、jpeg、png    video/avi  mp4
    文件內(nèi)容:
        借助文件讀取對(duì)象:
        var reader = new FileReader();
        reader.readAsText(oFile);    通過(guò)文本讀取,只能讀取文本內(nèi)容
        reader.readAsDataURL(oFile);  通過(guò)Base64讀取,一般來(lái)讀取小的logo,icon圖片,大的圖片視頻的數(shù)據(jù)太多
        進(jìn)度更改事件:
        reader.onprogress = function(ev){
            ev.loaded        已經(jīng)加載的
            ev.total         總數(shù)
        }
        toFixed(2);      顯示幾位小數(shù),2就是2位小數(shù)

二、視頻音頻

視頻video:
    視頻格式:mp4,ogg,avi,webb    其中的mp4格式各種瀏覽器都兼容
    屬性:  
        controls        控制臺(tái)
        autoplay        自動(dòng)播放
        loop            環(huán)路播放、循環(huán)播放
    自定義video的方法:
        play()          播放
        pause()         暫停
    自定義video的屬性:
        currentTime        當(dāng)前播放時(shí)間

音頻audio:
    音頻格式:mp3,ogg    其中的mp3格式各種瀏覽器都兼容

三、新增其他騷操作

選擇器
    document.querySelectorAll()[0];
    document.querySelector();
自定義屬性
    data-自定義屬性(W3C里面規(guī)定了data-永遠(yuǎn)不會(huì)被用為官方屬性)
    獲取屬性:oEle.dataset.自定義的屬性
class操作
    oEle.classList(里面新增了許多新的方法,常用的如下:)
        .length              長(zhǎng)度
        .value               所有class
        .add()               添加class
        .remove()            刪除class
        .contains()          包含
        .toggle()            切換

四、CSS3

1.瀏覽器前綴:
        -webkit-        Chrome/Safari/opear/firefox(49+)
        -moz-           Firefox
        -ms-            IE
        -o-             Opear(old)
        不加前綴        W3C要求
2.新屬性:
    ⑴border-radius(圓角):
        border-radius: 左上右下,右上左下;
        border-radius: 左上,右上左下,右下;
        border-radius: 左上,右上,右下,左下;
    ⑵box-shadow(盒子陰影):
        box-shadow:x偏移 y偏移 陰影范圍 顏色;
        box-shadow:x偏移 y偏移 陰影范圍 顏色;
        box-shadow:[inset(可加可不加)] x偏移 y偏移 陰影范圍 顏色;
            inset:內(nèi)陰影
        可以加多個(gè)陰影:
            box-shadow: x y opacity color, x y opacity color...;
    ⑶text-shadow(文字陰影):同上
    ⑷transition(運(yùn)動(dòng)):
        duration:運(yùn)動(dòng)的時(shí)間    1s
        style-type:過(guò)渡效果    all
        timing-function:運(yùn)動(dòng)類型    linear勻速運(yùn)動(dòng)  
            貝塞爾曲線:cubic-bezier(x1,y1,x2,y2)在百度上搜索點(diǎn)第一個(gè)進(jìn)去就可以測(cè)試各種0到1的曲線
        delay:延時(shí)(必須寫(xiě)在duration的后面)    1s
        簡(jiǎn)寫(xiě):transition:1s all ease 1s;
        ***運(yùn)動(dòng)結(jié)束事件(transitionend):
            運(yùn)動(dòng)結(jié)束后觸發(fā)該事件,但添加必須用來(lái)事件監(jiān)聽(tīng)來(lái)添加(addEventListener)
    ⑸transform(變形):
        注意點(diǎn):
            1.執(zhí)行有先后順序(后面的先執(zhí)行)
            2.行元素不能進(jìn)行操作(需要塊級(jí)化)
        a).translate(x,y)                   平移(x,y軸)
            translateZ()                 Z軸平移
            想要用translateZ:
                1.父級(jí)必須變成3D:-webkit-transform-style:preserve-3d;
                2.父級(jí)必須透視:
                    (1)如果父級(jí)有旋轉(zhuǎn)效果之類的:-webkit-transform:perspective(透視值) rotateX/Y();
                    (2)如果父級(jí)什么效果都沒(méi)有:perspective: 透視值;
        b).rotate(deg)默認(rèn)z軸               旋轉(zhuǎn)
            rotateX();                   延X(jué)軸旋轉(zhuǎn)
            rotateY();                   延Y軸旋轉(zhuǎn)
        c).scale(x的倍數(shù),y的倍數(shù))           縮放
        d).skew(xdeg,ydeg)                  拉伸、扭曲(不常用)
    ⑹transform-origin(x,y)設(shè)置原心位置
    ⑺gradient(漸變)
        線性漸變
            linear-gradient(顏色1,顏色2);可以多個(gè)顏色
            改變方向漸變:linear-gradient(方向,顏色1,顏色2);
            范圍漸變:linear-gradient(color1 start, color1 end, color2 start, color2 end, color3 start, color3 end...);
            跳變(平鋪):repeating-linear-gradient(color1 start, color1 end, color2 start, color2 end...);
        徑向漸變
            radial-gradient(顏色1,顏色2);
    ⑻background-size(背景),改變背景的大小
    ⑼background-clip(文本切片)(給文字設(shè)置隨意不同的顏色)
        1.給元素設(shè)置背景漸變
        2.設(shè)置文本切片(必須加在背景下面):-webkit-background-clip: text;
        3.文字顏色透明
    ⑽perspective(透視)(方便看3D效果)
        transform:perspective(透視值);
        透視值:推薦800-1200  值越小看著越明顯
    ⑾animation(高級(jí)動(dòng)畫(huà))
        定義一個(gè)動(dòng)畫(huà):
        @keyframes name{
            from{}
            to{}
        }
        調(diào)用一個(gè)動(dòng)畫(huà):
        animation: name duration ...;
        名字:
        -webkit-animation-name: toBig;      
        運(yùn)動(dòng)時(shí)長(zhǎng):
        -webkit-animation-duration: 1s;
        運(yùn)動(dòng)類型:
        -webkit-animation-timing-function: ease;
        迭代次數(shù):   infinite 無(wú)限
        -webkit-animation-iteration-count: infinite;
        方向:         alternate
        -webkit-animation-direction: alternate;
        播放狀態(tài):
        -webkit-animation-play-state: paused|running;
        延遲:
        -webkit-animation-delay:;
        停在那:
        -webkit-animation-fill-mode: forwards;

五、Canvas(畫(huà)布)

定義:是一個(gè)用來(lái)繪制圖形的容器
用法:它本身是沒(méi)有繪制圖形的能力的,只不過(guò)需要借助getContext()方法來(lái)獲取canvas對(duì)象,來(lái)獲取繪圖的上下文(這里的上下文可以理解為畫(huà)筆和紙):
        var gd = oEle.getContext('2d');
    每次在重新再一個(gè)畫(huà)布上繪制圖形的開(kāi)始之前先寫(xiě)上:
        gd.beginPath();    //重新開(kāi)始路徑
    初始位置:
        gd.moveTo(x,y);    //所有x y的值都沒(méi)有單位
    目標(biāo)位置:
        gd.lineTo(x,y);
    設(shè)置線寬:
        gd.lineWidth = 10;    //寬度的數(shù)字  沒(méi)有單位
    描邊顏色:
        gd.strokeStyle = 'color';
    描邊:
        gd.stroke();
    填充顏色:
        gd.fillStyle = 'color';
    填充:
        gd.fill();
    閉合路徑:
        gd.closePath();    //畫(huà)圖的時(shí)候用來(lái)執(zhí)行最后一步,回到起點(diǎn)
現(xiàn)有圖形簡(jiǎn)寫(xiě):
    rect    矩形
        a) gd.rect(x,y,width,height); 或 gd.stroke(); 或 gd.fill();
        b) gd.strokeRect(x,y,width,height); 或 gd.fillRect(x,y,width,height);
清屏:
    gd.clearRect(x,y,width,height);    //執(zhí)行順序 清屏=>改變值=>重新畫(huà)另一個(gè)
做動(dòng)畫(huà)的計(jì)時(shí)器的幀頻(1s內(nèi)繪制圖形的個(gè)數(shù),個(gè)數(shù)越多越清楚,開(kāi)過(guò)多的話計(jì)時(shí)器會(huì)影響性能)一般分為兩種:
    高幀頻:16ms
    低幀頻:30ms
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載請(qǐng)聲明 原文鏈接 關(guān)注公眾號(hào)獲取更多資訊 這篇文章主要總結(jié)H5的一些新增的功能以及一些基礎(chǔ)歸納,這里只是一個(gè)提...
    前端進(jìn)階之旅閱讀 9,213評(píng)論 22 225
  • 一、CSS權(quán)重 概念和作用: 權(quán)重指的是樣式的優(yōu)先級(jí);有兩條或多條樣式作用于一個(gè)元素,權(quán)重高的那條樣式對(duì)元素起作用...
    ALLIN5閱讀 541評(píng)論 0 0
  • HTML5是什么?有哪些新特性?有哪些新增標(biāo)簽?如何讓低版本的 IE 支持 HTML5新標(biāo)簽 HTML5是最新的H...
    小囧兔閱讀 364評(píng)論 0 0
  • 1. HTML5是什么?有哪些新特性?有哪些新增標(biāo)簽?如何讓低版本的 IE 支持 HTML5新標(biāo)簽 HTML5是超...
    鴻鵠飛天閱讀 394評(píng)論 0 0
  • 晴木萬(wàn)域閱讀 178評(píng)論 2 0

友情鏈接更多精彩內(nèi)容