(17.05.03)鍵盤事件、DOM、jq中的解綁事件、原生和jq的轉(zhuǎn)化、獲取相對(duì)/絕對(duì)位置、插件機(jī)制、阻止默認(rèn)事件、css3選擇器、瀏覽器前綴、前綴的js操作、transform、文本切片

javascript的組成部分?
    ECMAScript          核心解釋器
    DOM                 文檔對(duì)象模型
    BOM                 瀏覽器對(duì)象模型

    DOM
        DOM樹(shù)
            html頁(yè)面的結(jié)構(gòu)關(guān)系
        獲取子節(jié)點(diǎn)
            父級(jí).children             獲取第一層子節(jié)點(diǎn)
        獲取父節(jié)點(diǎn)
            結(jié)構(gòu)父級(jí)
                oEle.parentNode
            定位父級(jí)
                oEle.offsetParent
        創(chuàng)建節(jié)點(diǎn)
            document.createElement('標(biāo)簽名');
        插入
            父級(jí).appendChild(新節(jié)點(diǎn));
                從父級(jí)的后面添加
            父級(jí).insertBefore(新節(jié)點(diǎn),在誰(shuí)之前插入);
                在某個(gè)節(jié)點(diǎn)之前插入
        刪除  
            父級(jí).removeChild(子節(jié)點(diǎn));
事件
    事件對(duì)象
        包含了事件觸發(fā)的詳細(xì)信息
        ev      高版本瀏覽器
        event   低版本瀏覽器
        oBtn.onclick = function(ev){
            var oEvent = ev||event;
            oEvent.clientX
            oEvent.clientY

            oEvent.pageX
            oEvent.pageY
        };

        事件綁定(事件監(jiān)聽(tīng))
            oEle.addEventListener('sEv', fn, false);
            高版本
            oEle.attachEvent('onsEv', fn);
            低版本

        定義函數(shù)
        function addEvent(obj, sEv, fn){
            if(obj.addEventListener){
                obj.addEventListener(sEv,fn,false);
            }else{
                obj.attachEvent('on'+sEv,fn);
            }
        }
        調(diào)用
        addEvent(oBtn,'click',function(){
            alert(1);
        });

        事件解綁
        定義函數(shù)
        function removeEvent(obj, sEv, fn){
            if(obj.removeEventListener){
                obj.removeEventListener(sEv,fn,false);
            }else{
                obj.detachEvent('on'+sEv,fn);
            }
        }
        調(diào)用
        removeEvent(oBtn,'click',function(){
            alert(1);
        });

        匿名函數(shù)不能被解綁

        原因:匿名函數(shù)雖然長(zhǎng)得一樣,但是不是一個(gè)
            var show = new Function();
            function show(){}

        事件流
            DOM事件流
                冒泡階段        捕獲階段
            IE事件流
                冒泡階段


            取消冒泡
                ev.cancelBubble = true;

        默認(rèn)事件、默認(rèn)行為
            瀏覽器自己實(shí)現(xiàn)的功能
            阻止默認(rèn)事件
                return false;
                遇到addEventListener不兼容
                ev.preventDefault&&ev.preventDefault();

        事件委托、事件委派、事件派生
            給父級(jí)添加事件
            獲取事件源
                var oSrc = ev.srcElement||ev.target;


        onmouseover和onmouseout的bug
            換事件
                onmouseenter
                onmouseleave

        DOMReady
            方法一         推薦
                document.addEventListener('DOMContentLoaded',function(){

                },false);
            方法二
                document.onreadystatechange = function(){
                    if(document.readyState=='complete'){

                    }
                };

鍵盤事件
????鍵盤按下事件
????????onkeydown
????鍵盤抬起事件
????????onkeyup

????區(qū)分按鍵:鍵碼
????????oEvent.keyCode

????backspce????8
????回車????13
????空格????32


????拖拽回放


jquery
    $(function(){

    })();
    推薦以下做法
    $(document).ready(function(){

    });

????DOM操作
????????appendTo
????????prependTo
????????remove


JQuery中的事件
????都是綁定上去的
????????$().on ????綁定事件
????????$().off????解綁事件

????事件委托

        $('ul').on('click','li',function(){

        });

原生對(duì)象和jquery對(duì)象
????原生對(duì)象
????????document.getElementById();
????????document.getElementsByTagName();
????jquery對(duì)象
????????$();

原生對(duì)象和jquery對(duì)象不互通。

????原生對(duì)象和jquery對(duì)象之間的轉(zhuǎn)換
????????原生對(duì)象-》jquery對(duì)象
????????????$(原生對(duì)象)
????????jquery對(duì)象-》原生對(duì)象
????????????$().get(下標(biāo))
????????????$()[下標(biāo)]

    $().each()          //操作jquery元素的
        $('ul li').each(function(index,oEle){
            index           索引
            oEle            遍歷出來(lái)的原生對(duì)象
            this            遍歷出來(lái)的原生對(duì)象

            oEle==this 
        });

????獲取相對(duì)位置
????????obj.offsetLeft
????????obj.offsetTop

????????$().position()

????獲取絕對(duì)位置
????????getPos().left/top

????????$().offset()



$().width()


$().height()

寬+padding*2
$().innerWidth()

高+padding*2
$().innerHeight()

寬+padding2+border2
$().outerWidth()

高+padding2+border2
$().outerHeight()


????插件機(jī)制

        定義一個(gè)插件
        $.fn.toRed = function(){
            this.css('background','red');
        };
    批量定義插件          √
    $.fn.extend({
        名字:function(){}
    });

????jquery中
????????return false
????????阻止默認(rèn)事件
????????取消冒泡


CSS3
選擇器

transition
transform
text-shadow
linear-gradient
radial-tradient
border-radius
animation
-webkit-mask
瀏覽器前綴

box-shadow: x y blur color;

瀏覽器前綴
????-webkit- ????Chrome、Safari、Opera
????-moz- ???? Firefox
????-ms- ???? IE
????-o- ???? Opera
????不加前綴

        -webkit-transition:1s all ease;
        -moz-transition:1s all ease;
        -ms-transition:1s all ease;
        -o-transition:1s all ease;
        transition:1s all ease;

???? 用js操作瀏覽器前綴

        css                     js
        -webkit-transition      WebkitTransition
        -moz-transition         MozTransition
        -ms-transition          msTransition
        -o-transition           OTransition
        transition              transition


        setC3Style(obj,sName,sValue);

transform

    transform       變形
        rotate          旋轉(zhuǎn)      deg
        translate       平移
        scale           縮放

        原點(diǎn)
            中心點(diǎn)
            transform-origin
例子:
        CSS3簡(jiǎn)易時(shí)鐘

            1圈      360°
            12h         1h  ==  30°
            60m         1m  ==  6°
            60s         1s  ==  6°


            5           1
            10          2
            15          3
            20          4

????transform 多個(gè)值
????????有先后執(zhí)行順序,后面的先執(zhí)行
????transform 注意
????????不能操作行元素

????文本切片
????????-webkit-background-clip:text;
????????-webkit-background-clip 一定要設(shè)置在背景顏色后面


????移動(dòng)端
????????手機(jī)、平板、watch、電視

????????pc端怎么寫(xiě),移動(dòng)端就怎么寫(xiě)。
????????而且還簡(jiǎn)單了。不需要注意兼容。東西少。
????????只不過(guò)移動(dòng)端需要注意尺寸。

????移動(dòng)端方式:
????????定寬
????????百分比
----------------------------------------------
????????響應(yīng)式
????????只有一套頁(yè)面,在不能尺寸的設(shè)備上用不同的樣式
????????彈性
????????rem


總結(jié):

    鍵盤事件
        onkeydown           鍵盤按下
        onkeyup             鍵盤抬起

            獲取鍵碼
                oEvent.keyCode

    JQuery
        $(document).ready();
        事件
            $().on(sEv,['委托'],function(){});
            off
        循環(huán)
        $().each(function(index,oEle){
            index           索引
            oEle            原生對(duì)象
            this            原生對(duì)象
        });
        原生對(duì)象和jquery對(duì)象的轉(zhuǎn)換
            原生對(duì)象-》jquery對(duì)象
                $(原生)
            jquery對(duì)象-》原生對(duì)象
                $()[下標(biāo)]
                $().get(下標(biāo))
        寬高
        $().width()
        $().height()
        寬高+padding
        $().innerWidth()
        $().innerHeight()
        寬高+padding+border
        $().outerWidth()
        $().outerHeight()

        獲取定位
            相對(duì)定位
                $().position().left/top;
            絕對(duì)定位
                $().offset().left/top;
        插件擴(kuò)展
            //jquery中所有的this都是原生對(duì)象,只有一個(gè)例外
            插件中的this是jquery對(duì)象
            $.fn.xxx = function(){
            };
            $.fn.extend({
                xxx:function(){}
            });

        取消冒泡,阻止默認(rèn)事件
            return false;

            單獨(dú)阻止默認(rèn)事件
                ev.preventDefault()
            單獨(dú)取消冒泡
                ev.stopPropagation();
-------------------------------------------------------
    CSS3
        瀏覽器前綴
            -webkit-            Chrome,Safari,Opera
            -moz-               Firefox
            -ms-                IE
            -o-                 old Opera
            不加前綴            
        transform
            原點(diǎn)
                -webkit-transform-origin
            transform的書(shū)寫(xiě)順序:
                后寫(xiě)的先執(zhí)行
            文本切片
                -webkit-background-clip:text;
                切記,一定要寫(xiě)在背景色后面。
最后編輯于
?著作權(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)容

  • 相關(guān)知識(shí)點(diǎn) 移動(dòng)端、 適配(兼容)、 ios點(diǎn)擊事件300ms延遲、 點(diǎn)擊穿透、 定位失效...... 問(wèn)題&解決...
    sandisen閱讀 25,895評(píng)論 3 67
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,861評(píng)論 1 19
  • 經(jīng)常會(huì)出去參加一些學(xué)習(xí)和培訓(xùn),因?yàn)槎际亲约褐鲃?dòng)花錢出去的,所以每次培訓(xùn)其實(shí)都很享受,并沒(méi)有覺(jué)得很痛苦。這次...
    燕妮老師說(shuō)閱讀 1,360評(píng)論 0 1
  • 用每月1格來(lái)畫(huà)出我們整個(gè)生命的方格,那么我們的人生只有900宮格(按照國(guó)人的平均壽命75歲計(jì))。2016年底整理我...
    簡(jiǎn)餐A閱讀 667評(píng)論 0 4
  • 曾經(jīng),面包公主對(duì)于繪畫(huà),幾乎是既沒(méi)興趣也沒(méi)天賦……完全是手殘型的! 中學(xué)那會(huì)兒的美術(shù)作業(yè),多大是同桌或閨蜜幫忙完成...
    面包公主閱讀 1,075評(píng)論 12 5

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