webAPI的基礎理解與運用文本框DOM節點事件流鼠標事件(九)

添加元素的其他方式

注意

    通過 父元素DOM對象.appendChild(元素), 將創建好的元素添加到了父元素中的末尾。

insertBefore

   語法:
     父DOM對象.insertBefore(新節點,舊節點);

    參數介紹:
        1. 第一個參數表示的就是要在父容器中添加的新元素

        2. 第二個參數表示的是要將新元素添加到哪個元素之前(目標元素)

cloneNode(true|false)

   語法:
      DOM對象.cloneNode(boolean);

   參數介紹:
       1. 參數是一個布爾類型的參數

       2. 如果參數是false,只克隆標籤本身,不包括標籤中的內容

       3. 如果參數是true,不僅要克隆標籤本身,還包括標籤中的所有內容

replaceChild

   語法:

     父DOM對象.replaceChild(新節點,舊節點);

   參數介紹:
      1. 第一個參數代表的是新節點(元素)

      2. 第二個參數代表的是被替換的節點(元素)

oninput事件

    
    事件特點:

         當用戶在輸入的時候,就會觸發該事件。

註冊事件

on方式註冊事件

   語法:
      DOM對象.on事件名稱 = function() {

      };

   特點:

     1. 如果給元素註冊的事件是相同的事件,那麼後面的事件會將前面的事件覆蓋掉
      

addEventListener方式註冊事件

   語法:
      DOM對象.addEventListener('事件名', function(){});

   特點:
      1. 通過addEventListener可以給元素註冊多個事件

      2. 如果註冊的事件名字相同,不會發生事件覆蓋的問題。

attachEvent方式註冊事件(解決IE8以上瀏覽器兼容問題)

   語法:
      DOM對象.attachEvent('on+事件名', function(){});

   特點:
      1. 該方式可以給元素註冊多個事件
      2. 該方法只適合在IE瀏覽器環境下使用 【瞭解】

移除事件

移除通過on方式註冊的事件

   語法:
       DOM對象.on事件名 = null;
    總結:
        1. 該種移除事件的方式,僅限在註冊事件的時候就使用的是 on 方式

移除通過addEventListener註冊的事件

   語法:
      DOM對象.removeEventListener('事件名', 函數名)
   特點:
      1. 要通過removeEventListener移除事件時候,要通過函數名的方式移除

      2. 必須保證在註冊事件的時候,處理程序就得是命名函數

      3. 例如:
        div.addEventListener('click', fn);      
        function fn() {
           alert(1);
        }

        //移除
        div.removeEventListener('click', fn);

移除通過attachEvent註冊的事件【兼容IE低版本】

   語法:

      DOM對象.detachEvent('事件名', 函數名);

   特點:
      1. 使用detachEvent移除事件時候,要通過函數名移除(註冊的時候需要是命名函數)

      2. 使用detachEvent移除事件的時候,方式與removeEventListener一樣

      3. detachEvent移除事件的時候,事件名稱前需要加 'on'

事件流

組成


    1. 事件捕獲 : 事件從外向內傳遞執行

    2. 事件執行: 開始執行事件中的代碼
    
    3. 事件冒泡: 事件從內向外傳遞執行

委託思想

    
    委託思想:

        1. 可以將自己完成的事情(事件)交給父元素完成 [冒泡和捕獲]

        2. 通過事件對象參數獲取具體的值


     事件對象參數:

         1. 本質上就是參數

         2. 事件對象參數是保存,事件執行過程中產生的數據(值)

         3. 例如

          ul.onclick = function(e) {

            //e: 事件對象參數
             
            //獲取當前點擊標籤的文字
            console.log(e.target.innerText);
          }


          4. 事件對象參數就是一個對象

事件對象參數


    e.target:  得到的就是當前點擊的具體的那個對象
    
    e.clientX:   鼠標點擊位置相對可視區域左上角的橫座標
    e.clientY:  鼠標點擊位置相對可視區域左上角的縱座標

    e.offsetX:   鼠標點擊位置相對當前事件源左上角橫座標
    e.offsetY:  鼠標點擊位置相對當前事件源左上角縱座標

    e.pageX:     鼠標點擊位置相對於整個頁面(包括滾動條出去的位置)【非標準屬性】
    e.pageY:     鼠標點擊位置相對於整個頁面

    e.screenX:   鼠標點擊位置相對整個瀏覽器的橫座標
    e.screenY:   鼠標點擊位置相對整個瀏覽器的縱座標

    e.stopPropagation();   //阻止事件冒泡

    例如:
       var divs = document.querySelectorAll('div');

       for(var i = 0; i < divs.length; i++) {

          //點擊每一個div
            divs[i].addEventListener('click', function(e) {

                console.log(this.className);
                //阻止事件冒泡
                e.stopPropagation();
            })
       }

鼠標移動事件

onmousemove

    
    事件:onmousemove 

       鼠標移動的時候就會觸發該事件。

    注意:
        1. 在修改元素位置的時候,一般是將元素先設置爲絕對定位

鍵盤事件

onkeydown

    當前鍵盤上任意的一個鍵被按下去,會觸發onkeydown事件

onkeyup

   當前鍵盤上的任何一個鍵擡起時候,觸發onkeyup事件

onkeypress

   當前鍵盤上任意的一個鍵被按下去,觸發onkeypress

   特點:
       1. 鍵盤上的一些功能鍵無法獲取(方向鍵, alt, ctrl)

鍵盤事件對象參數

    e.key  | e.code ----> 鍵的名字(字符串)

    e.keyCode   -----> 每一個鍵對應的一個值

BOM階段

概念

    BOM(Browser Object Model)即瀏覽器對象模型。

js中的頂級對象

    window對象是js中的頂級對象,定義在全局作用域中的變量、函數都會變成window對象的屬性和方法,在調用的時候可以省略window。

頁面加載事件

   window.onload = function() {};

   特點:
   頁面上的所有元素都創建完成,並且引用的外部資源都下載完畢(js,css)

定時器

setTimeout()

    
   語法:

      setTimeout(function(){}, time)

   總結:
       1. 返回一個當前定時器的id
       2. time毫秒

setInterval()

   語法:
      setInterval(function(){}, time);

   總結:
      1. 返回當前定時器的id
      2. time毫秒

location對象

    
    1. href屬性

    2. window.open('url路徑'); 

    3. reload(boolean); 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章