Day7 jss應(yīng)用

01.添加事件

02.onload函數(shù)

03.選項卡

04.定時器

05.獲取非行內(nèi)樣式

06.BOM操作

07.select下拉框和oninput事件


01.添加事件

  • 添加事件方式
    <div style="width:200px; height:200px; background-color:red" onclick="alert('這是一個div')"></div>
    <div style="width:200px; height:200px; background-color:blue" onclick="test()"></div>
    <div id="div" style="width:200px; height:200px; background-color:green"></div>
</body>
</html>
<script>
function test() {
    console.log('花田里犯了錯,說好,破曉前忘掉')
}
var odiv = document.getElementById('div')
   odiv.onclick = function () {
       console.log('遙遠的東方有一條龍')
   }


  • 顯示隱藏圖片
    操作div的display屬性抽米,在block和none之間切換即可
div class="tu">
        <img src="feng.jpg" alt="可愛的鳳姐"">
    </div>
    <button id="btn">讓鳳姐消失</button>
    <button id="btn1" onclick="show()">說你愛我</button>
</body>
</html>
<script>
// 顯示和隱藏圖片操作的是div的display屬性茶敏,在block和none之間切換
var obutton = document.getElementById('btn')
obutton.onclick = function () {
    // 找到指定div堤器,將其display屬性修改為none
    var odiv = document.getElementsByClassName('tu')[0]
    odiv.style.display = 'none'
}

function show() {
    var odiv = document.getElementsByClassName('tu')[0]
    odiv.style.display = 'block'
}
  • this使用

在匿名函數(shù)中的this就是當(dāng)前對象
在onclick=demo(this) 就是當(dāng)前節(jié)點
修改內(nèi)容
this.innerHTML = 'xxx'

<body>
    <div class="tang" style="width:200px; height:200px; background-color:red"></div>
    <div class="tang" style="width:200px; height:200px; background-color:blue" onclick="demo(this)"></div>
</body>
</html>
<script>
    // 點擊div,將寬度有200px修改為400px
    var odiv = document.getElementsByClassName('tang')[0]
    odiv.onclick = function () {
        console.log(this)
        // this就是odiv
        this.style.width = '400px'
        // 給div添加內(nèi)容
        this.innerHTML = '秦時明月漢時關(guān),萬里長征人未還,但使龍城飛將在,不教胡馬度陰山'
    }

    function demo(obj) {
        // 這里面的this是window治笨,在js里面寫的所有的函數(shù)都是window的函數(shù),調(diào)用demo其實就是  window.demo()
        console.log(this)
        // var odiv = document.getElementsByClassName('tang')[1]
        obj.style.height = '400px'
    }

點擊之前:



點擊之后:


  • 切換背景色
<body>
    <div id="bai" style="width:300px; height:300px; background-color:red;"></div>
</body>
</html>
<script>
var odiv = document.getElementById('bai')
odiv.onclick = function () {
    // 先獲取div的背景色
    color = this.style.backgroundColor
    if (color == 'red') {
        this.style.backgroundColor = 'yellow'
    } else {
        this.style.backgroundColor = 'red'
    }  
}

表單內(nèi)容控制
方法一:this傳值

<body>
    <input id="ip" type="text" value="請輸入用戶名">
    <input type="text" value="請輸入用戶名" onfocus="cleara(this)" onblur="recover(this)">
</body>
</html>
<script>
    // clear是關(guān)鍵字签夭,不能使用函數(shù)名
function cleara(obj) {
    // console.log('clear')
    if (obj.value == "請輸入用戶名") {
        obj.value = ''
    }
}
function recover(obj) {
    if (obj.value == '') {
        obj.value = '請輸入用戶名'
    }
}

方法二:getElementById()

var oinput = document.getElementById('ip')
oinput.onfocus = function () {
    // 判斷要不要清空
    if (this.value == "請輸入用戶名") {
        this.value = ''
    }
}
oinput.onblur = function () {
    // 判斷內(nèi)容是不是為空湿镀,如果為空變成下面這個
    if (this.value == '') {
        this.value = '請輸入用戶名'
    }
}

鼠標(biāo)點擊輸入框后:


02.onload函數(shù)

window的事件,windows.onload = function () {} 是在整個文檔加載完畢之后執(zhí)行姿染,但是自己寫的onclick的點擊函數(shù)不能寫到onload里面背亥,因為內(nèi)部函數(shù)只能在內(nèi)部使用秒际,不能再外部使用

<html>
    <head>
        <meta charset="UTF-8">
        <title>onload函數(shù)</title>
        <script type="text/javascript">
//          demo() 有錯
            window.onload=function(){
                var odiv = document.getElementById('div2')
                odiv.onclick = function () {
                    this.style.backgroundColor = 'red'
                }
            }
//          function demo(obj) {
//          obj.style.backgroundColor = 'cyan'
//      }
        </script>
    </head>
    <body>
        <div id="div2" style="width:300px; height:300px; background-color:pink" onclick="demo(this)">
        </div>
    </body>
</html>
<script type="text/javascript">
//  function demo(obj){
//              obj.style.backgroundColor='red'
//          }
</script>

03.選項卡

<style>
    button {
        width: 200px;
        height: 100px;
        font-size: 40px;
        background-color: pink;
        margin-left: 50px;
        display: inline-block;
    }
    div {
        width: 970px;
        height: 600px;
        font-size: 50px;
        background-color: yellow;
        margin-left: 50px;
        margin-top: 50px;
        display: none;
    }
    .active {
        font-size: 50px;
        background-color: blue;
    }
    .show {
        display: block;
    }
    </style>
</head>
<body>
    <button class="active" onclick="dudu(this, 0)">周杰倫</button>
    <button onclick="dudu(this, 1)">王力宏</button>
    <button onclick="dudu(this, 2)">張學(xué)友</button>
    <button onclick="dudu(this, 3)">劉德華</button>
    <div class="show">菊花臺、千里之外狡汉、七里香娄徊、霍元甲、聽媽媽的話盾戴、稻香寄锐、雙節(jié)棍、簡單愛</div>
    <div>花田錯尖啡、龍的傳人橄仆、唯一</div>
    <div>慢慢、吻別衅斩、一千個傷心的理由</div>
    <div>謝謝你的愛盆顾、冰雨、天意畏梆、忘情水</div>
</body>
</html>
<script>
    // 得到所有的button
    var abuttons = document.getElementsByTagName('button')
    // 得到所有的div
    var adivs = document.getElementsByTagName('div')
    function dudu(obj, index) {
        // 先將所有的button的class屬性設(shè)置為空
        for (var i = 0; i < abuttons.length; i++) {
            abuttons[i].className = ''
            adivs[i].className = ''
        }
        // 給指定的button添加樣式
        obj.className = 'active'
        // 給指定的div添加樣式
        adivs[index].className = 'show'
    }
</script>

04.定時器

定時器:分為兩種您宪,一種是周期性定時器,一種是一次性定時器
周期性:每隔5s執(zhí)行一次函數(shù)
一次性:幾秒之后執(zhí)行一次函數(shù)奠涌,執(zhí)行完畢定時器結(jié)束
var timer = setTimeout(fn, 5000)
5000ms之后執(zhí)行fn一次宪巨。然后結(jié)束
銷毀定時器 clearTimeout(timer)

  • 一次性計時器
</head>
<body>
    <div id="baby">
        <img height="800px" src="meinv.jpg" alt="氣質(zhì)美女">
    </div>
    <button id="btn">點我給你福利</button>
</body>
</html>
<script>
    var odiv = document.getElementById('baby')
    var obtn = document.getElementById('btn')
    // timer就是一個定時器
    var timer = setTimeout(function () {
        odiv.style.display = 'none'
    }, 5000)

    obtn.onclick = function () {
        // 清除timer這個定時器
        clearTimeout(timer)
    }
</script>
  • 周期計時器
</head>
<body>
    <button onclick="demo()">一行司機上青天</button>
</body>
</html>
<script>
    var timer = setInterval(function () {
        console.log('兩個女孩鳴翠柳')
    }, 5000)

    function demo() {
        clearInterval(timer)
    }
</script>

05.獲取非行內(nèi)樣式

  • IE瀏覽器獲取非行內(nèi)樣式方式
  obj.currentStyle['name']
  • 火狐和谷歌獲取方式
getComputedStyle(odiv, null)['width']
  • 獲取非行內(nèi)樣式的兼容性寫法
function getStyle(obj, name) {
    return obj.currentStyle ? obj.currentStyle[name] : getComputedStyle(obj, null)[name]
}
<style>
    div {
        width: 300px;
        height: 300px;
        background-color: pink;
    }
    </style>
</head>
<body>
    <div id="lala"></div>
    <input type="text" id="ip">
    <button onclick="demo()">點我獲取div寬度</button>
</body>
</html>
<script>
var odiv = document.getElementById('lala')
function demo() {
    // 獲取div的寬度,只能獲取行內(nèi)樣式
       var kuan = odiv.style.width

    // 獲取非行內(nèi)樣式
       var kuan = odiv.currentStyle['width']
       var kuan = getComputedStyle(odiv, null)['width']
    var kuan = getStyle(odiv, 'width')
    // 顯示到input框中
    var oinput = document.getElementById('ip')
    oinput.value = kuan
}

06.BOM操作

<body>
    <button id="btn">點我</button>
    <button id="btn1">摸我</button>
    <button id="btn2">張家輝</button>
    <button id="btn3">張家輝</button>
</body>
</html>
<script>
    var obutton = document.getElementById('btn')
    var obutton1 = document.getElementById('btn1')
    var obutton2 = document.getElementById('btn2')
    var obutton3 = document.getElementById('btn3')
    obutton.onclick = function () {
        ret = window.confirm('今天晚上準(zhǔn)備吃什么')
        if (ret == true) {
            console.log('你點擊了確定')
        } else {
            console.log('你點擊了取消')
        }
    }
    obutton1.onclick = function () {
        window.open('http://www.baidu.com/', '_self')
    }
    obutton2.onclick = function () {
        // window.history.go(2)
        window.history.back()
        // file:///C:/Users/ZBLi/Desktop/1805/day02/14-bom.html
    }
    obutton3.onclick = function () {
        // 得到當(dāng)前的url
        // console.log(location.href)
        // location.
        location.reload()
    }
</script>

07.select下拉框和oninput事件

  • onchange : 事件,用戶點擊下拉框觸發(fā)

  • selectedIndex : 用戶點擊的option的下標(biāo)溜畅,下標(biāo)從0開始

  • options : osel.options 可以得到所有的option對象揖铜,這是一個數(shù)組

  • input框的oninput事件,只要內(nèi)容改變达皿,就會觸發(fā)

<body>
    <select name="刺客" id="sel">
        <option value="1">阿珂</option>
        <option value="2">蘭陵王</option>
        <option value="3">孫悟空</option>
        <option value="4">趙云</option>
        <option value="5">李白</option>
    </select>
    <input type="text" id="ip">
</body>
</html>
<script>
    var osel = document.getElementById('sel')
    osel.onchange = function () {
        // alert('我被出發(fā)了')
        // alert(osel.selectedIndex)
        alert(osel.options[osel.selectedIndex].innerHTML)
    }

    var oinput = document.getElementById('ip')
    oinput.oninput = function () {
        console.log(this.value)
    }
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市贿肩,隨后出現(xiàn)的幾起案子峦椰,更是在濱河造成了極大的恐慌,老刑警劉巖汰规,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汤功,死亡現(xiàn)場離奇詭異,居然都是意外死亡溜哮,警方通過查閱死者的電腦和手機滔金,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茂嗓,“玉大人餐茵,你說我怎么就攤上這事∈鑫” “怎么了忿族?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我道批,道長错英,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任隆豹,我火速辦了婚禮椭岩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘璃赡。我一直安慰自己判哥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布鉴吹。 她就那樣靜靜地躺著姨伟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪豆励。 梳的紋絲不亂的頭發(fā)上夺荒,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機與錄音良蒸,去河邊找鬼技扼。 笑死,一個胖子當(dāng)著我的面吹牛嫩痰,可吹牛的內(nèi)容都是我干的剿吻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼串纺,長吁一口氣:“原來是場噩夢啊……” “哼丽旅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纺棺,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤榄笙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后祷蝌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茅撞,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年巨朦,在試婚紗的時候發(fā)現(xiàn)自己被綠了米丘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡糊啡,死狀恐怖拄查,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棚蓄,我是刑警寧澤靶累,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布腺毫,位于F島的核電站卦方,受9級特大地震影響深寥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜磨镶,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一邪蛔、第九天 我趴在偏房一處隱蔽的房頂上張望急黎。 院中可真熱鬧,春花似錦侧到、人聲如沸勃教。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽故源。三九已至,卻和暖如春汞贸,著一層夾襖步出監(jiān)牢的瞬間绳军,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工矢腻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留门驾,地道東北人。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓多柑,卻偏偏與公主長得像奶是,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子竣灌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

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

  • 1聂沙、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_x閱讀 15,968評論 3 119
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情初嘹,實現(xiàn)同樣的效果;這時候需要使用工廠模式及汉。簡單...
    舟漁行舟閱讀 7,718評論 2 17
  • 放不下他的時候,多想想他是怎么放下你的
    Bittersweety閱讀 99評論 0 0
  • 性格寫在臉上削樊,人品映在眼中,生活方式顯現(xiàn)于身材兔毒,情緒起伏表露于聲音漫贞,態(tài)度看手勢,家教看站姿育叁,審美看衣服迅脐,層次看鞋子...
    木魚兒的眼睛閱讀 184評論 0 0