深入淺出JavaScript8章節(jié)第05章DOM事件

01HTML事件:

直接在HTML元素的標(biāo)簽內(nèi)添加事件讳苦,執(zhí)行腳本谒撼。
語法:<tag 事件="執(zhí)行腳本" > </tag>
功能:在HTML元素上綁定事件宾肺。
說明:執(zhí)行腳本可以是一個函數(shù)的調(diào)用

01鼠標(biāo)事件
onload:頁面加載時觸發(fā)
onclick:鼠標(biāo)點擊時促發(fā)
onmouseover:鼠標(biāo)滑過時觸發(fā)
onmouseout:鼠標(biāo)離開時觸發(fā)
onfoucs:獲取焦點時觸發(fā)
onblur:失去焦點時觸發(fā)
onchange:域內(nèi)容發(fā)生改變是觸發(fā)

02鼠標(biāo)事件
onsubmit:表單中確認(rèn)按鈕被點擊時發(fā)生(注釋:加在表單上P⒊!B榔状共!不是按鈕上套耕!)
onmousedown:鼠標(biāo)按鈕在元素上按下時觸發(fā)
onmousemove:在鼠標(biāo)指針移動時發(fā)生
onmouseup:在元素上松開鼠標(biāo)按鈕時觸發(fā)
onresize:當(dāng)瀏覽器調(diào)整窗口大小時觸發(fā)
onscroll:拖動滾動條時觸發(fā)

鍵盤事件與KeyCode屬性
onkeydown:在用戶按下一個鍵盤按鍵時發(fā)生
onkeypress:在鍵盤按下并釋放一個鍵時發(fā)生
onkeyup:在鍵盤按鍵松開時發(fā)生
keyCode:(返回onkeypress,onekeydown or onkeup事件觸發(fā)的鍵的值的字符代碼,或鍵代碼)

關(guān)于this指向
在事件觸發(fā)函數(shù)中峡继,this是對DOM對象的引用冯袍。

<!DOCTYPE html>
<html>
    <head lang="cn">
        <meta charset="utf-8" />
        <title>Test</title>
        <style type="text/css">
            /**{background: aqua;}*/
            .btn{width: 140px;height: 30px;line-height: 30px;
            background: aquamarine;color: red;font-size: 14px;text-align: center;
            border-radius: 8px;cursor: pointer; margin-top: 30px;}
        </style>
    </head>
    <body>

        <input type="button" value="彈 出" onclick="alert('彈出!')" />
        
        <div id="btn" class="btn" onmouseover="over(this)" onmouseout="mouseout(this)">開 始</div>
        
    <script type="text/javascript">
        function over(btn){
            btn.style.background='aqua';
            console.log(btn);
        }
        function mouseout(btn){
            btn.style.background='aquamarine';
        }
    </script>
    </body> 
</html>
image.png

02 DOM 0級事件
1.通過DOM獲取HTML元素
2.(獲取HTML元素).事件=執(zhí)行腳本
語法:ele.事件=執(zhí)行腳本
功能:在DOM對象上綁定事件
說明:執(zhí)行腳本可以是一個匿名還是,也可以是一個函數(shù)的調(diào)用

<!DOCTYPE html>
<html>
    <head lang="cn">
        <meta charset="utf-8" />
        <title>Test</title>
        <style type="text/css">
            /**{background: aqua;}*/
            .btns{width: 140px;height: 30px;line-height: 30px;
            background: aquamarine;color: red;font-size: 14px;text-align: center;
            border-radius: 8px;cursor: pointer; margin-top: 30px;}
            .unbtns{width: 140px;height: 30px;line-height: 30px;
            background: chartreuse;color: red;font-size: 14px;text-align: center;
            border-radius: 8px;cursor: pointer; margin-top: 30px;}
        </style>
    </head>
    <body>

        <input type="button" value="彈 出" onclick="alert('彈出康愤!')" />
        
        <div id="btn" class="btns">鎖定</div>
        
    <script type="text/javascript">
        function over(btn){
            btn.style.background='aqua';
            console.log(btn);
        }
        function mouseout(btn){
            btn.style.background='aquamarine';
        }
        var anli = document.getElementById('btn');
        anli.onclick=function(){
            if(anli.innerHTML=='鎖定'){
                anli.className='unbtns';
                anli.innerHTML='解鎖';
            }else if(anli.innerHTML=='解鎖'){
                anli.className='btns';
                anli.innerHTML='鎖定';
            }
            
        }
    </script>
    </body> 
</html>
image.png

image.png
<!DOCTYPE html>
<html>
    <head lang="cn">
        <meta charset="utf-8" />
        <title>Test</title>
        <style type="text/css">
            .box{
                padding: 50px;
            }
            .left,.tip{
                float: left;
            }
            .left{margin-right: 10px;}
            .tip{display: none;font-size: 14px;}
        </style>
        <script type="text/javascript">
            window.onload=function(){
                console.log("激活");
            }
        </script>
    </head>
    <body>
        <div class="box">
            <div class="left">
                <input type="text" id="phone" placeholder="親輸入手機號碼" />
            </div>
            <div class="tip" id="tip">
                親輸入6位有效的手機號碼
            </div>
        </div>
        <script type="text/javascript">
            var phone = document.getElementById('phone'),
                tip = document.getElementById('tip');
            phone.onfocus=onFC;
            phone.onblur=onbl;
            function onFC(){
                tip.style.display='block';
            }
            function onbl(){
                var phonenumber=this.value;//value獲取表單的值儡循;
//              console.log(phonenumber);
                if(phonenumber.length==6 && isNaN(phonenumber)==false){
                    tip.innerHTML="用戶名無誤";
                }else{
                    tip.innerHTML="輸入錯誤!";
                }
            }
        </script>
    </body> 
</html>
<body>
        <div class="box">
            親選擇你喜歡的BGCOLOR
            <select name="" id="baselect">
                <option value="">請選擇</option>
                <option value="red">紅色</option>
                <option value="aquamarine">綠色</option>
                <option value="deepskyblue">藍(lán)色</option>
                <option value="yellow">黃色</option>
                <option value="powderblue">灰色</option>
            </select>
        </div>
        <script type="text/javascript">
            var selectbase = document.getElementById("baselect");
            selectbase.onchange=xz;
            function xz(){
                var bgColor = this.value;
//              var bgColor = selectbase.options[selectbase.selectedIndex].value;
                if(bgColor==''){
                    document.body.style.background='white';
                }else{
                    document.body.style.background=bgColor;
                }
            }
        </script>
    </body> 
image.png
<body>
        <div id="box" style="width: 200px; height: 200px;background: aquamarine; padding: 25px;">
            
        </div>
        
        <script type="text/javascript">
            var get_box = document.getElementById('box');
            get_box.onmousedown=function(){console.log('我被按下了');};
            get_box.onmousemove=function(){console.log("我被移動了");};
            get_box.onmouseup=function(){console.log("鼠標(biāo)離開我了")};
            window.onresize=function(){console.log("我的尺寸被改變了")};
            window.onscroll=function(){console.log("滑動了")};
        </script>
    </body> 
<body>
        <div>你還可以輸<span id="tip">30</span></div>
        <textarea name="" id="textnum" rows="5" cols="40"></textarea>
        
        <script type="text/javascript">
            var get_textnum=document.getElementById('textnum');
            get_textnum.onkeyup=function(){
                var get_tip=document.getElementById('tip'),
                    jsp=30;
                var lens=get_textnum.value.length;
                var zf=jsp-lens;
//              console.log(zf);
                get_tip.innerHTML=zf;
            }
        </script>
    </body> 
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末征冷,一起剝皮案震驚了整個濱河市择膝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌检激,老刑警劉巖肴捉,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叔收,居然都是意外死亡齿穗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門今穿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缤灵,“玉大人,你說我怎么就攤上這事蓝晒∪觯” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵芝薇,是天一觀的道長胚嘲。 經(jīng)常有香客問我,道長洛二,這世上最難降的妖魔是什么馋劈? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮晾嘶,結(jié)果婚禮上妓雾,老公的妹妹穿的比我還像新娘。我一直安慰自己垒迂,他們只是感情好械姻,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著机断,像睡著了一般楷拳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吏奸,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天欢揖,我揣著相機與錄音,去河邊找鬼奋蔚。 笑死她混,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播产上,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼棵磷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晋涣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤沉桌,失蹤者是張志新(化名)和其女友劉穎谢鹊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體留凭,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡佃扼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蔼夜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兼耀。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖求冷,靈堂內(nèi)的尸體忽然破棺而出瘤运,到底是詐尸還是另有隱情,我是刑警寧澤匠题,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布拯坟,位于F島的核電站,受9級特大地震影響韭山,放射性物質(zhì)發(fā)生泄漏郁季。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一钱磅、第九天 我趴在偏房一處隱蔽的房頂上張望梦裂。 院中可真熱鬧,春花似錦盖淡、人聲如沸年柠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彪杉。三九已至,卻和暖如春牵咙,著一層夾襖步出監(jiān)牢的瞬間派近,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工洁桌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留渴丸,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像谱轨,于是被迫代替她去往敵國和親戒幔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

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