day02

A今天学到了什么

1.实现勾选
 <button id="btn">btn</button>
    <input type="checkbox">篮球
   
    <script>
        var btn=document.getElementById("btn");
        var input=document.getElementsByTagName("input")[0];
        console.log(input);
        btn.onclick=function(){
            // input.checked=(input.checked==true)?false:true;
            input.checked=!input.checked;
        }
    </script>
2.修改
2.1修改元素的样式
  <p id="p">hello world</p>
    <button id="btn">change</button>
    <script>
        var btn=document.getElementById("btn");
        var p=document.getElementById("p");
        btn.onclick=function(){
            p.style.background="red";
        }
    </script>
2.2隔行变色
  <style>
        /* odd奇数项
           even偶数项 */
          ul>li:nth-child(odd){
          color: red;
         
         }
         ul>li:nth-child(even){
             color: blue;
         }
             
         
    </style>
2.3JS实现隔行变色
 <script>
    var lis =document.getElementsByTagName("li");
    for(let i = 0 ; i<lis.length; i++){
        if(i%2==0){
            lis[i].style.color="red";
            // lis[i].style.backgroundColor="red";
        }
        else{
            lis[i].style.color="blue";
        }
    }
    </script>
3.显示隐藏
  <div id="div" style="display: block">

    </div>
    <button id="btn">
            toggle
    </button>
    <script>
        var div=document.getElementById("div");
        var btn=document.getElementById("btn");
        btn.onclick=function(){
            // let value =div.style.display;
            // if(value=="block"){
            //     div.style.display="none";
            // }else{
            //     div.style.display="block";
            // }
            div.style.display=(div.style.display=="none")?"block":"none";
        }
    </script>
4.局限性
 <div id="test" style="width: 100px">

    </div>
    <script>
        // element.style.attr
        // 只能获取内联样式
        let test =document.getElementById("test");
        // let value=test.style.width;
        // console.log(value);

        // 1.在chrome下获取
        // getComputedStyle(元素,null).属性
        let value=window.getComputedStyle(test,null).width;
        // 在IE浏览器
        let ieValue=test.currentStyle.width;
        console.log(value);
    </script>
    
5.通过className获取
 <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(){
            p.className=(p.className=="current")?"none":"current"
        }
    </script>
6.node(节点)
6.1node用法
 <p>hello world <span>good</span></p>
    <script>
        // 获取节点中所有的文本内容
    
        var p=document.getElementsByTagName("p")[0];
        var nodeContent=p.textContent;
        console.log(nodeContent);
    </script>
6.2node value
 <!-- 注释节点 -->
    <!-- p标签是元素节点 -->
    <!-- hello world 是文本节点 -->
    <p> hello world</p>
    <!-- node value 只能获取注释节点和文本节点 -->
    <script>
        
    </script>
</body>

6.3node type
  <!--  -->
    <p class="one" id="p">hello world</p>
    <script>
        // node type
        // 1.元素节点
        // 2.属性节点 
        // 3.文本节点
        var p=document.getElementById("p");
        var eNode=p.nodeType;
        var tNode=p.firstChild.nodeType
        var attrNode=p.getAttributeNode("class").nodeType;
        console.log(eNode);
        console.log(tNode);
        console.log(attrNode);

    </script>
6.4 增加节点appendChild
   <div id="parent">
        <p id="one">hello world</p>
 
    </div>
    <button id="add">add</button>
    <script>
        // 增加节点  语法 parentNode.appendChild(childNode)
        // createElement()创建元素节点
        // createTextNode 创建文本节点
        var add=document.getElementById("add");
        var parent=document.getElementById("parent");
         add.onclick = function(){
            let p=document.createElement("p");
            let txt=document.createTextNode("first");
            p.appendChild(txt);
            // console.log(p);
            // parent.appendChild(p);(在后面增加)
            // insertBefore 语法 parentNode.insertBefore(元素,id)
            // parent.insertBefore(p,one);(在前面增加)
        }
    </script>
6.5 修改节点repalceChild
  <div id="parent">
        <p id="child"> hello world</p>
    </div>
    <button id="btn">btn</button>
    <script>
        // 语法parentNode.replaceChild(newNode,targetNode)
        var btn=document.getElementById("btn");
        var parent=document.getElementById("parent");
        var child=document.getElementById("child");

        btn.onclick=function(){
            let h4=document.createElement("h4");
            let txt=document.createTextNode("修改");
            h4.appendChild(txt);
            parent.replaceChild(h4,child);
        }
    </script>
6.6克隆节点cloneNode
 <p>hello world</p>
    <script>
        // 克隆节点语法
        // nodeElement.cloneNode(true);
        var p= document.getElementsByTagName("p")[0];
        var cp=p.cloneNode(true);
        document.body.appendChild(cp);
    </script>
    
7.事件
7.1 onfocusoblur
   <input type="text" id="input">
    <script>
        // onfocus  获取焦点
        // oblur 失去焦点
        // 在事件中 this指向正在执行事件的对象
        var input=document.getElementById("input");
        input.onfocus=function(){
            this.style.background="red";
        }
        input.onblur=function(){
            this.style.background="green";
        }
    </script>
7.2 鼠标事件
    <p id="test">hello world</p>
    <script>
        // var test= document.getElementById("test");
        // onmouseover 鼠标移动到某元素上
        // onmouseout 鼠标移出
        test.onmouseover=function(){
            this.style.color="red";

        }
        test.onmouseout=function(){
            this.style.color="blue"
        }
    </script>
7.3 DOM事件
<title>Document</title>
    <script src="JS/index.js">
        // window.onload
        // 整个DOM树以及相关的图片资源加载完成之后执行相关的代码
      
    </script>
8.onchange
 <input type="text" name="" id="">
    <script>
            // onchange 域的内容发生改变的时候触发
        var input=document.getElementsByTagName("input")[0];


        input.onchange=function(){
            this.value="改变"
        }
    </script>
9.onsubmit
   <form action="">
        <input type="text">
        <button type="submit">提交</button>
    </form>
    <script>
        // onsubmit 表单被提交的时候发生
        var submit = document.getElementsByTagName("form")[0];
        submit.onsubmit=function(){
            alert("提交菜单")
        }
    </script>
10.onresize
   <div>

    </div>
    <script>
        window.onresize=function(){
            alert("浏览器窗口发生改变时触发");
        }
        window.onscroll=function(){
            alert("窗口滚动时触发")
        }
    </script>
    <style>
        div{
           
            height: 1000px;
            background: red;
        }

    </style>

11.key的用法

    <!-- 显示对应的键盘号 -->
    <!-- onkeydown 键盘按下时触发
          event.keyCode 按下的键盘对应的键盘码-->
          <!--onkeypress 按着键盘的时候  -->
          <!-- onkeyup拿起来的时候 -->
    <script>
        document.onkeydown=function(event){
            alert(event.keyCode)
        }
    </script>

12.em的用法

    <p>你还可以输入<em id="show">0</em>/150个字</p>
    <textarea id="txt" cols="30" rows="10"></textarea>
    <script>
        let show=document.getElementById("show");
        let txt =document.getElementById("txt");
        txt.onkeyup=function(){
            let length=txt.value.length;
            show.innerHTML=length;
        }
    </script>
13.window的用法
13.1 window的属性
  <script>
        // js的顶级作用域就是window
        // 全局变量是window的属性
        // 方法是widnow的方法
    var a= 10;
    console.log(window.a);
    function b(){
        console.log(this);
    }
    // this指向window
    window.b();
    </script>
13.2 window confirm
 <div>
        <span id="mi">小米8</span> <button id="btn"> btn</button>
    </div>
    <script>
        // 确定 返回 true     取消返回 false
       var result= window.confirm("是否取消");
       console.log(result);
       let btn =document.getElementById("btn");
       let mi=document.getElementById("mi");
       btn.onclick=function(){
           var result=window.confirm("你确定不要小米8吗");
           if(result){
               mi.style.display="none";
           }else{
               mi.style.display="block";
               
           }
       }
    </script>

B.小米登录页面的实现

1.css部分

   <style>
        *{margin: 0;padding: 0}
        .form{
            width: 400px;
            border: 1px solid #333;
            text-align: center;
            margin-left: auto;
            margin-right: auto;
            margin-top: 50px;
            box-shadow: 0 0 10px 5px #333;
        }
        li{
            list-style: none;
            display: inline-block;
        }
        ul{
            line-height: 50px;
        }
        .content{
            position: relative;
            height: 200px;
        }
        .content>div{
            position: absolute;
            height: 100%;
            width: 100%;
        }
        .saoma{
            display: none;           
        }
        input{
            width: 360px;
            height: 40px;
            margin-top: 20px;
        }
        .current{
            color: orange;
        }
    </style>

2.html部分

 <div class="form">
        <ul>
            <li class="current">账号登录</li>
            <li>扫描登录</li>
        </ul>
    

    <div class="content ">
        <div class="account child">
            <div><input type="text"></div>
            <div><input type="password"></div>
            <div><input type="submit" value="立即登录"></div>

        </div>
        <div class="saoma child">
            <img src="images/01.png" alt="">
        
        </div>
        
    </div>
    </div>

3.JS部分

      <!-- 1.给每个li一个点击事件
            2.给每个li一个index属性
            3.让对应参数的contents显示,其他隐藏 -->
        <script>    
            var lis=document.getElementsByTagName("li");
            // var contents=document.getElementsByClassName("child");
            var contents=document.querySelectorAll(".content>div");
            // console.log(contents);
            // 点击li 让正在被点击的class=current  其他的class=""
            for(let i=0;i<lis.length;i++){
                lis[i].index=i;
                lis[i].onclick=function(){
                    // 先将所有的li className 清空
                    for(let i=0;i<lis.length;i++){
                        lis[i].className="";
                    }
                    // 当前项的li class=current;
                    this.className="current";
                    for(let i =0;i<contents.length;i++){
                        contents[i].style.display="none";
                    }
                    // console.log(i);
                    contents[this.index].style.display="block";
                }
            }
        </script>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 646评论 0 0
  • Day02的课程要点记录详细教程地址:金角大王 - Day1 Python基础1金角大王 - Day2 Pytho...
    乘风逐月阅读 464评论 0 0
  • 经验总结:1.开发中不经常使用XML经常使用JSON,开发中要写单独的UNIT单元测试类,单独的工具类封包,开发中...
    123yuan123阅读 239评论 0 1
  • 第一次挑战10km,很轻松,跑完感觉整个人都舒坦了。
    可爱的红泥小火炉阅读 177评论 0 0
  • 在大森林的深处,有一棵巨大的老松树,在这棵松树上住着小松鼠跳跳一家。 有一天晚上,月亮高高挂在空中,星星眨巴着眼睛...
    芝士村的cheese阅读 316评论 0 2