Day07 JavaScript

1.JS獲取元素

<button id="btn">btn</button>
<input type="checkbox">籃球
<script >
  var btn=document.getElementById("btn");
  var input=document.getElementsByTagName("input")[0];
  btn.onclick=function(){
    input.checked=!input.checked;
  }
</script>

2.修改元素樣式

<p id="p">hello world</p>
<button id="btn">change</button>
<script >
  /*
  * 修改樣式
  * element.style.attr =value;
  * */
  var btn=document.getElementById("btn");
  var p =document.getElementById("p");
  btn.onclick=function(){
    p.style.backgroundColor="red";
  }
</script>

3.隔行變色

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<script >
  var list=document.getElementsByTagName("li");
  for (let i=0;i<list.length;i++){
    if (i%2!=0){
      list[i].style.backgroundColor="red";
    } else{
      list[i].style.backgroundColor="blue";
    }
  }
</script>

4.顯示隱藏

 <style>
    div{
      width: 100px;
      height: 100px;
      background: red;
    }
  </style>

<div id="div"></div>
<button id="btn">btn</button>
<script >
  var btn=document.getElementById("btn");
  var div=document.getElementById("div");
  btn.onclick=function(){
    //element.style.屬性名 只能獲得內(nèi)聯(lián)樣式的值
    let value=div.style.display;
    console.log(div.style.height);
    if (value =="none"){
      //設(shè)置值的時(shí)候也是設(shè)置的內(nèi)聯(lián)樣式
      div.style.display="block";
    } else{
      div.style.display="none";
    }
    // div.style.display=(div.style.display=="none")?"block":"none";
  }

  //若要獲取內(nèi)部樣式或外部樣式
  //1.Chrome中獲取
  let value=window.getComputedStyle(div, null).width;
  console.log(value);
  //2.IE中獲取
  let ieValue=div.currentStyle.width;
</script>

5.更改/增加class名

<style>
    .current{
      color: red;
    }
  </style>


<p id="p">hello world</p>
<button id="btn">btn</button>
<script >
  var btn=document.getElementById("btn");
  var p =document.getElementById("p");
  btn.onclick=function () {
    //方法1
    // p.className="current";
    //方法2
    p.classList.add("current");
  }
</script>

6.節(jié)點(diǎn) Node

<!---->
<p class="one">hello world <span>good</span></p>
<script >
  //textContent獲得節(jié)點(diǎn)中所有文本內(nèi)容
  var p=document.getElementsByTagName("p")[0];
  var x=p.firstChild;
  var tNode=p.getAttributeNode("class");
  var nodeContent=p.textContent;
  console.log(x);
  console.log(nodeContent);
  //只有文本節(jié)點(diǎn)和注釋節(jié)點(diǎn),屬性節(jié)點(diǎn)的nodeVaule會(huì)返回值其余都為null
  console.log(p.nodeValue);
  console.log(tNode.nodeValue);
  //nodeType==1 元素節(jié)點(diǎn)
  //nodeType==2 屬性節(jié)點(diǎn)
  //nodeType==3 文本節(jié)點(diǎn)
  console.log(p.nodeType);
  console.log(x.nodeType);
  console.log(tNode.nodeType);
</script>

7.增加節(jié)點(diǎn)

<div id="parent">
  <p id="one">hello world</p>
</div>
<button id="btn">add</button>
<script >
  /*
  * 增加節(jié)點(diǎn)
  * 從后添加parentNode.appendChild(ChildNode);
  * 從前添加 parentNode.insertBefore(增加的節(jié)點(diǎn),目標(biāo)位置節(jié)點(diǎn))
  * createElement()創(chuàng)造元素節(jié)點(diǎn)
  * createTextNode()創(chuàng)建文本節(jié)點(diǎn)
  * */
  var btn=document.getElementById("btn");
  var parent=document.getElementById("parent");
  var pOne=document.getElementById("one");

  btn.onclick=function () {
    let p=document.createElement("p");
    let txt=document.createTextNode("first");
    p.appendChild(txt);
    parent.appendChild(p);
    let p1=document.createElement("p");
    let txt1=document.createTextNode("first");
    p1.appendChild(txt1);
    console.log(p1);
    parent.insertBefore(p1, pOne);
  }
</script>

8.刪除節(jié)點(diǎn)

<ul id="parent">
  <li>hello world</li>
  <li>hello world</li>
  <li>hello world</li>
  <li>hello world</li>
  <li>hello world</li>
</ul>
<button id="btn">btn</button>
<script >
  //刪除節(jié)點(diǎn)  parentNode.removeChild(childNode)
  var btn=document.getElementById("btn");
  var parent=document.getElementById("parent");
  var li=document.getElementsByTagName("li")[0];
  btn.onclick=function () {
    parent.removeChild(li);

  }
</script>

9.修改節(jié)點(diǎn)

<div id="parent">
  <p id="child">hello world</p>
</div>
<button id="btn">btn</button>
<script >
  var btn=document.getElementById("btn");
  var parent=document.getElementById("parent");
  var child=document.getElementById("child");
  //修改節(jié)點(diǎn) parentNode.replaceChild(newNode,targetNode)
  btn.onclick=function () {
    let h4=document.createElement("h4");
    let txt=document.createTextNode("修改");
    h4.appendChild(txt);

    parent.replaceChild(h4, child);

  }
</script>

10.克隆節(jié)點(diǎn)

<p>hello world</p>
<script >
  //nodeElement.cloneNode(true) 克隆節(jié)點(diǎn)
  var p=document.getElementsByTagName("p")[0];
  var cp=p.cloneNode(true);
  document.body.appendChild(cp);
</script>

11.DOM事件

<input type="text" id="input">
<p id="p">hello word</p>
<form action="">
  <input type="text">
  <input type="submit" id="submit">
</form>
<p>你還可以輸入 <em id="show">0</em>/150個(gè)字</p>
<textarea name="" id="txt" cols="30" rows="10"></textarea>

<script >

  var input=document.getElementById("input");
  //onfocus獲取焦點(diǎn)時(shí)觸發(fā)
  //this 執(zhí)行時(shí)間的當(dāng)前對(duì)象 下面input執(zhí)行onfocus則this=input
  input.onfocus=function () {
    this.style.backgroundColor="red";
  }
  //onblur失去焦點(diǎn)時(shí)出發(fā)
  input.onblur=function () {
    this.style.backgroundColor="green";

  }
  //onmouseover 鼠標(biāo)覆蓋事件
  var p=document.getElementById("p");
  p.onmouseover=function () {
    this.style.color="red";
  }
  //onmouseout 鼠標(biāo)離開(未覆蓋)事件
  p.onmouseout=function () {
    this.style.color="green";
  }
  //window.onload 整個(gè)DOM及相關(guān)圖片資源加載完成之后執(zhí)行
  window.onload=function () {
    var np=document.createElement("p");
    let npx=document.createTextNode("hello");
    np.appendChild(npx);
    document.body.appendChild(np);
  }
  //onchange事件 域的內(nèi)容發(fā)生改變時(shí)觸發(fā) 支持input select textarea
   input.onchange=function () {
    this.value="change";
   }
   //onsubmit form.onsubmit表單背提交時(shí)觸發(fā)
  var form=document.getElementsByTagName("form")[0];
  form.onsubmit=function () {
    alert("提交表單");
  }
  //onresize 瀏覽器窗口大小改變時(shí)觸發(fā)
  window.onresize=function () {
    alert("瀏覽器窗口改變");

  }
  //onscroll 頁面下滑(滾動(dòng))時(shí)觸發(fā)
  window.onscroll=function () {
    alert("頁面滾動(dòng)");
  }
  //document.keydown 任意鍵按下時(shí)觸發(fā) event.keyCode按下的鍵對(duì)應(yīng)的鍵盤嗎
  // document.onkeydown=function () {
  //   alert(event.keyCode);
  // }
  //document.keypress 按下并釋放
  // document.onkeypress=function () {
  //   alert(event.keyCode);
  // }
  //document.keyup 釋放時(shí)觸發(fā)

  let show=document.getElementById("show");
  let txt=document.getElementById("txt");
  txt.onkeyup=function () {
    let length=txt.value.length;
    show.innerHTML=length;

  }
</script>

12.BOM

<script >
  //JS的頂級(jí)作用域就是window户辫,全局變量是window的屬性烫幕,
  //方法是window的方法
  var a=10;
  console.log(window.a);
  // this指向
  function b(){
    console.log(this);
  }
  //confirm 返回值  確定true 取消false
  var result=  window.confirm("是否取消");
  console.log(result);
</script>

13.小米登陸框案例

CSS

<style>
    *{
      padding: 0;
      margin: 0;}
    .form{
      width: 400px;
      border: 1px solid #eee;
      margin: 50px auto;

      box-shadow:  5px 5px 10px #999;
    }
    li{
      margin: 20px 0;
      list-style:none;
      display: inline-block;
      font-size: 30px;
      border-right: 2px solid #e3e3e3;
      padding:0 20px;
    }
    li:last-child{
      border: none;
    }
    ul{
      text-align: center;
      line-height: 55px;
      margin-bottom: 20px;
      border-bottom: 1px solid #eeeeee;
    }
    .content{
      position: relative;
      height: 200px;
    }
    .content>div{
      position: absolute;
      width: 100%;
      height: 100%;
    }
    .account{
      text-align: center;
    }
    .account>div>input{
      width: 360px;
      height: 40px;
      margin-bottom: 20px;
    }
    .qrCode{
      text-align: center;
      display: none;
    }
    .current{
      color: orange;
    }
  </style>

HTML

<div class="form">
  <ul><li class="current">賬號(hào)登陸</li>
    <li>掃碼登陸</li>
  </ul>
  <div class="content">
    <div class="account">
      <div><input type="text"></div>
      <div><input type="password"></div>
      <div><input type="submit" value="立即登陸"></div>
    </div>
    <div class="qrCode">
      <img src="../images/01.png" alt="">
    </div>
  </div>
</div>

<script >
  let list=document.getElementsByTagName("li");
  let contents=document.querySelectorAll(".content>div");
  for (let i=0;i<list.length;i++){
    list[i].index=i;
    list[i].onclick=function () {
      //先將所有l(wèi)i的class清空
      for (let key in list){
        list[key].className="";
      }
      this.className="current";
      // if (this.firstChild.textContent=="賬號(hào)登陸"){
      //   document.getElementsByClassName("account")[0].style.display="block";
      //   document.getElementsByClassName("qrCode")[0].style.display="none";
      // } else{
      //   document.getElementsByClassName("account")[0].style.display="none";
      //   document.getElementsByClassName("qrCode")[0].style.display="block";
      // }
      for (let i=0;i<contents.length;i++){
        contents[i].style.display="none";
      }
      contents[this.index].style.display="block";
    }

  }
</script>

14.sHover插件

插件地址:
http://www.jq22.com/demo/sHover-master20150718/#

插件引入:

  <script src="JS/sHover.min.js"></script>

案例如下:
CSS

  <style>
    #item1{
      overflow: hidden;
      border: 1px solid #333;
      width: 280px;
      height: 180px;
    }
    .sIntro{
      background: #333;
    }

  </style>

HTML

<div id="item1" class="sHoverItem">
  <img id="img1" src="../images/01.jpg">
  <span id="intro1" class="sIntro">
        <h2>Flowers</h2>
        <p> Flowers are so inconsistent!  </p>
        <button>inconsistent</button>
    </span>
</div>
<script >
  var a=new sHover("sHoverItem","sIntro");
  a.set({
    slideSpeed:5,
    opacityChange:true,
    opacity:80
  });
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末条辟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子端逼,更是在濱河造成了極大的恐慌揖铜,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件困介,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蘸际,警方通過查閱死者的電腦和手機(jī)逻翁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捡鱼,“玉大人,你說我怎么就攤上這事酷愧〖菡” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵溶浴,是天一觀的道長(zhǎng)乍迄。 經(jīng)常有香客問我,道長(zhǎng)士败,這世上最難降的妖魔是什么闯两? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任褥伴,我火速辦了婚禮,結(jié)果婚禮上漾狼,老公的妹妹穿的比我還像新娘重慢。我一直安慰自己,他們只是感情好逊躁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布似踱。 她就那樣靜靜地躺著,像睡著了一般稽煤。 火紅的嫁衣襯著肌膚如雪核芽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天酵熙,我揣著相機(jī)與錄音轧简,去河邊找鬼。 笑死匾二,一個(gè)胖子當(dāng)著我的面吹牛哮独,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播假勿,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼借嗽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了转培?” 一聲冷哼從身側(cè)響起恶导,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浸须,沒想到半個(gè)月后惨寿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡删窒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年裂垦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肌索。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蕉拢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诚亚,到底是詐尸還是另有隱情晕换,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布站宗,位于F島的核電站闸准,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏梢灭。R本人自食惡果不足惜夷家,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一蒸其、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧库快,春花似錦摸袁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至湿蛔,卻和暖如春膀曾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阳啥。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工添谊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人察迟。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓斩狱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親扎瓶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子所踊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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