day02

作者: 克马 | 来源:发表于2018-06-28 19:02 被阅读0次

    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>
    

    相关文章

      网友评论

          本文标题:day02

          本文链接:https://www.haomeiwen.com/subject/fzjnyftx.html