(28)day7-web前端(2)

7.1 屬性操作

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <img src="img/a1.jpg"/>
        <button disabled="disabled">電腦不了</button>
    </body>
</html>
<script type="text/javascript">
    var imgNode = document.getElementsByTagName('img')[0]

1.屬性點語法操作

節(jié)點.屬性:獲取屬性值
節(jié)點.屬性=新值:修改屬性值

    var name = 'src'
    imgNode.title = '圖片1'

2.通過相應方法對屬性進行操作

節(jié)點.getAttribute(屬性名):獲取節(jié)點該屬性名對應的值
a.獲取屬性

//  var srcAttr = imgNode.getAttribute('src')
    var srcAttr = imgNode.getAttribute(name)
    console.log((srcAttr))                            // "img/a1.jpg"

b.給屬性賦值

節(jié)點.setAttribute(屬性名):修改節(jié)點該屬性名對應的值

    imgNode.setAttribute('title','帥哥250')

c.刪除屬性;如:<button disabled="disabled">電腦不了</button>

通過刪除按鈕disabled屬性來控制按鈕是否可用

    var buttonNode = document.getElementsByTagName('button')[0]
    //刪除disable屬性讓按鈕可用
    buttonNode.removeAttribute('disabled')
    
//  buttonNode.disabled = ''  部分瀏覽器版本可這樣讓按鈕可用
    
    
</script>

7.2 BOM基礎


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>dom操作</title>
    </head>
    <body>
        <button onclick="windowAction()">打開窗口</button>
        <button onclick="windowMove()">移動窗口</button>
    </body>
</html>
<script type="text/javascript">

1.什么是BOM:瀏覽器對象模型(browser object model)

js中提供了一個全局的window烙无,用來表示當前瀏覽器
js中聲明的全局變量,其實都是綁定在window對象中的屬性
所以枚碗,在使用window屬性和方法時遥巴,前面的‘window.’可以不寫

    var a = 100;
    console.log(a===window.a)           // true
//  alert('我沒寫window.哦')

2.window基本操作

a.打開新窗口:不需要點擊即可跳轉

//  window.open('http://www.baidu.com')

b.關閉窗口

//  window.close()

c.移動窗口

    window.moveTo(200,200)
    function windowAction(){
        mywindow = window.open('','','width=200,height=300')
        mywindow.focus()
    }
    function windowMove(){
        mywindow.moveTo(1000,300)

d.調(diào)整窗口大小

        mywindow.resizeTo(400,400)

e.強制刷新

        window.reload(true)
    }

f.獲取瀏覽器用于顯示內(nèi)容部分的寬和高

    console.log(window.innerWidth,window.innerHeight) 

g.獲取整個瀏覽器的寬和高

    console.log(window.outerWidth,window.outerHeight)

3.彈框

a.alert(提示信息):彈出提示信息(帶確定按鈕)

    window.alert('alert彈出')

b.confirm(提示信息):彈出提示信息(帶確定和取消按鈕),返回值是布爾

    result = window.confirm('confirm,是否刪除?')
    console.log('===',result)       

c.window.prompt('提示信息', '輸入框顯示的默認值'):彈出一個帶輸入框和取消確定按鈕的提示框,點 取消 返回值是null,點 確定 返回值是輸入框中的內(nèi)容..

    var result = window.prompt('提示信息', '輸入框顯示的默認值')
    console.log(result)
</script>

7.3 定時事件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <p id='time'>0</p>
        <button onclick="clearBoom()">拆炸彈伍玖!</button>
    </body>
</html>
<script type="text/javascript">

1.setInterval(函數(shù),時間):每隔指定的時間調(diào)用一次函數(shù),時間單位是毫秒,返回一個定時對象
clearInterval(定時對象):停止指定定時對象
1000毫秒=1秒

   var pNode = document.getElementById("time")
   var num = 0
   var interval1 = window.setInterval(function(){
       //這里的代碼每隔1秒會執(zhí)行一次
       num ++
//      console.log(num)
       pNode.innerText = num
       if(num==10){
           //滿足條件,停止對應對象
           window.clearInterval(interval1)
       }
   },
   1000)

2.setTimeout(函數(shù),時間):隔指定的時間調(diào)用一次函數(shù)
window.clearTimeout(定時對象)
函數(shù)只會調(diào)用一次啄寡,類似定時炸彈

    var message = '&&&&&&&&爆炸&&&&&&&&'
    var timeout1 = window.setTimeout(function(){
        console.log(message)
    },3000)
    
    function clearBoom(){
        window.clearTimeout(timeout1)
    }

    //
    
</script>

7.4 事件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
                position: relative;
            }
            #div1{
                margin-top:200px ;
                margin-left: 100px;
            }
        </style>
    </head>
    <body>
        <div id="div1" style="width: 200px;height: 300px;background-color: red;">
            
        </div>
        <a >
            event相關屬性說明
        </a>
        <!--a.在標簽內(nèi)部給事件源的事件屬性賦值-->
        <button id="b1" onclick=alert('彈框')>彈出彈框</button>
        <button id="b11" onclick="showAlert()">彈出彈框2</button>
        
        <button id="b2">改變背景顏色</button>
        <button id="b3">改變字體顏色</button>
        <button id="b4">改變樣式</button>
        
        
    </body>
</html>
<script type="text/javascript">

js是事件驅動語言

1.事件3要素(事件源豪硅、事件、事件驅動的程序)
例如:
小明打狗挺物,狗嗷嗷叫懒浮。:本 事件中狗是事件源,狗被打就是事件识藤,狗嗷嗷叫就是事件驅動的程序砚著。
小明打狗,他老爸就打他痴昧。:本 事件中狗是事件源稽穆,狗被打就是事件,小明被打就是事件驅動的程序赶撰。
點擊按鈕舌镶,就彈出一個彈框:事件源是按鈕,事件是點擊按鈕豪娜,事件驅動的程序就是彈出彈框

2.綁定事件
第一步:獲取事件源
第二步:綁定事件
第三步:寫驅動程序

a.在標簽內(nèi)部給事件源的事件屬性賦值
<標簽 事件屬性=‘驅動程序’></標簽>
<標簽 事件屬性=‘函數(shù)名()’></標簽>:一般不這樣綁定
注意:這個時候被綁定的驅動程序如果是函數(shù)乎折,那么這個函數(shù)中this關鍵字是指代window的。

    function showAlert(){
        console.log(this)
    }

b.通過節(jié)點綁定事件1
標簽節(jié)點.事件屬性 = 函數(shù)
注意:此時函數(shù)中的this就是事件源

    var b2Node = document.getElementById('b2')
    function changeColor(){
        console.log(this)      // b2Node
//      b2Node.style.backgroundColor = 'yellow'
        this.style.backgroundColor = 'yellow'
    }
    b2Node.onclick = changeColor

c.通過節(jié)點綁定事件2

標簽節(jié)點.事件屬性 = 匿名函數(shù)

    var b3Node = document.getElementById('b3')
    b3Node.onclick = function(){
        console.log(this)      // b3Node
        this.style.color = 'yellow'
//      this.style.backgroundColor = 'red'
    }

d.通過節(jié)點綁定事件3
節(jié)點.addEventListener(事件名侵歇,函數(shù)):指定的節(jié)點產(chǎn)生指定的事件后調(diào)用指定的函數(shù)
事件名:字符串,去掉on
注意:這個時候函數(shù)中的this就是事件源吓蘑,這種方式可以給同一個事件綁定多個驅動程序

    var b4Node = document.getElementById('b4')
    b4Node.addEventListener('click',
    function(){
        console.log(this)      // b4Node
        this.style.color = 'red'
    })
    b3Node.addEventListener('click',
    function(){
        this.style.backgroundColor = 'red'
    })

3.獲取事件對象

當事件驅動程序是一個函數(shù)時惕虑,這個函數(shù)中可以設置一個參數(shù)來獲取當前事件中的事件對象

    var div1Node = document.getElementById('div1')
    div1Node.onclick = function(evt){
        //參數(shù)evt就是事件對象

a.(evt.clientX,evt.clientY):事件產(chǎn)生的位置的坐標,相對瀏覽器內(nèi)容部分

        console.log(evt.clientX,evt.clientY)
        console.log(evt.offsetX,evt.offsetY)
        if(evt.offsetX<100){
            this.style.backgroundColor = 'black'
        }else{
            this.style.backgroundColor = 'yellow'
        }
    }

4.常見的事件類型

</script>

7.5 常見事件類型

常見事件類型

1.onload:頁面加載完成對應的事件(標簽加載成功)
window.onload:函數(shù)

2.鼠標事件
onclick:鼠標點擊事件
onmoseover
...

3.鍵盤事件
onkeypress - 鍵盤按下彈起

onkeydown
onkeyup

4.輸入框內(nèi)容改變事件
onchange:輸入框輸入狀態(tài)結束(光標消失)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            //1.在頁面加載完成后才去獲取節(jié)點
            window.onload = function(){
                //這樣js代碼就不會取到null
                var pNode = document.getElementById('p1')
                
                //點擊事件
                pNode.onclick = function(){
                    alert('被電擊')
                }
                
                //鼠標進入事件
                pNode.onmouseover = function(){
                    this.innerText = '鼠標進入'
                    this.style.backgroundColor = 'red'
                }
                
                //鼠標移出事件
                pNode.onmouseout = function(){
                    this.innerText = '鼠標移出'
                    this.style.backgroundColor = 'white'
                }
                
                //鼠標按下事件
                pNode.onmousedown = function(){
                    this.innerText = '鼠標按下'
                    this.style.backgroundColor = 'white'
                }
                
                //鼠標彈起事件
                pNode.onmouseup = function(){
                    this.innerText = '鼠標彈起'
                    this.style.backgroundColor = 'white'
                }
                
                //鼠標彈起事件
                pNode.onmousewheel = function(){
                    this.innerText = '鼠標滾輪'
                    this.style.backgroundColor = 'white'
                }
                
                pNode.onkeypress = function(){
                    alert('鍵盤按下')
                }
            }
            
            
        </script>
    </head>
    <body>
        <p id='p1' style="height: 200px;">我是段落</p>
        <textarea name="" rows="4" cols=""></textarea>
    </body>
</html>
<script type="text/javascript">
    var textareaNode = document.getElementsByTagName('textarea')[0]
    textareaNode.onkeypress = function(evt){
        //鍵盤事件對象:key屬性:按鍵的值磨镶,keycode屬性:按鍵值的編碼
//      console.log(evt)
//      d = evt.keyCode
//      if(d>=97 && d <= 122){
//          d -= 32
//      }
//      textareaNode.innerText = String.fromCharCode(d)
    }
    textareaNode.onchange = function(evt){
        alert('onchange事件')
    }
</script>
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末溃蔫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子琳猫,更是在濱河造成了極大的恐慌伟叛,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脐嫂,死亡現(xiàn)場離奇詭異统刮,居然都是意外死亡,警方通過查閱死者的電腦和手機账千,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門侥蒙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匀奏,你說我怎么就攤上這事鞭衩。” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵论衍,是天一觀的道長瑞佩。 經(jīng)常有香客問我,道長坯台,這世上最難降的妖魔是什么炬丸? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮捂人,結果婚禮上御雕,老公的妹妹穿的比我還像新娘。我一直安慰自己滥搭,他們只是感情好酸纲,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布旨指。 她就那樣靜靜地躺著亿驾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迅脐。 梳的紋絲不亂的頭發(fā)上愁溜,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天疾嗅,我揣著相機與錄音,去河邊找鬼冕象。 笑死代承,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的渐扮。 我是一名探鬼主播论悴,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼墓律!你這毒婦竟也來了膀估?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤耻讽,失蹤者是張志新(化名)和其女友劉穎察纯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體针肥,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡饼记,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了慰枕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片握恳。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖捺僻,靈堂內(nèi)的尸體忽然破棺而出乡洼,到底是詐尸還是另有隱情崇裁,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布束昵,位于F島的核電站拔稳,受9級特大地震影響,放射性物質發(fā)生泄漏锹雏。R本人自食惡果不足惜巴比,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望礁遵。 院中可真熱鬧轻绞,春花似錦、人聲如沸佣耐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兼砖。三九已至奸远,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間讽挟,已是汗流浹背懒叛。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留耽梅,地道東北人薛窥。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像眼姐,于是被迫代替她去往敵國和親诅迷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

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

  • 1.基礎語法(對象) 1.什么是對象(object) -和Python中的對象一樣,有對象屬性和對象方法2.創(chuàng)建對...
    L_4bc8閱讀 400評論 0 0
  • 第3章 基本概念 3.1 語法 3.2 關鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,128評論 0 21
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5妥凳? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 27,486評論 1 45
  • 夢里我倉皇的逃 以最原始的方式 赤腳沾滿厚厚的泥沙 石屋旁 棕樹下 池塘邊 無處藏匿
    那畔千潯閱讀 208評論 0 4
  • 2017年歐洲腫瘤協(xié)會年會(ESMO)上公布的研究數(shù)據(jù)顯示,與普通人比較拱镐,卒中(中風)患者得癌風險提升近2倍艘款。 2...
    亨利福特健康閱讀 360評論 0 0