美文网首页
前端一周01 JavaScript DOM、 事件 e

前端一周01 JavaScript DOM、 事件 e

作者: 尘榆骡厌 | 来源:发表于2017-11-20 20:49 被阅读0次

    // 前端

    HTML   CSS    JavaScript
    
    HTML   超文本标记语言
        标签
            单标签
            双标签
            h1-h6    标题标签
            p    段落标签
            
            div/span    无语义标签
    

    // Javascript

    //  变量申明的不同
    java:  
         需要加上数据类型        String name = null;
         name  只能储存String类型的值
    js:
        关键字:var      var name = null;
        name  可以储存所有类型的值
        name = 123;
    

    //   数据类型
    
    js:  undefined        未定义
        var name;
            声明一个变量,不给变量赋值  那么变量的值就是undefined
    

    //   数组
        
        js:  
            声明一个数组:  var arr = [];    var arr = new Array();
            
            向数组添加元素
            
                //  push()   把元素当做是数组最后一个元素添加到数组中
                    arr.push("123");
                //  prop()   把数组最后一个元素从数组中移除
                    arr.prop();
                //  join();   把数组中所有的元素连成一个字符串
                    arr.join("")
    

    //  DOM
    document object model     //文档对象模型
        对我们操作HTML 提供方法
        
        //   dom树     
        
        
        //   节点
        
            由dom树的一个结构可以看出
            整个文档 -- 他就是一个文档节点
            每一个HTML标签都是一个元素节点
            标签内的内容其实就是一个文本节点
            标签的属性就是属性节点
            页面中所有的一切都是节点
        
        //   访问节点
            //  1.   获取HTML元素
            
            1. getElementById()        //  id是唯一
                通过元素节点的id名来去获取到元素  
                获取到是一个单独的元素,直接获取到
                console.log()  相当于java中的    System.out.println()  
                    //  在控制台输出
                    
                var ep =  document.getElementById('p');
            
                console.log(ep);         //   在控制台输出     System.out.println()
                
                ep.style.background = 'yellow';
            
            //   1.  获取到HTML的元素
            //   2.  操作HTML元素
                    
                    
                
            2. getElementsByTagName()
                通过标签名来去获取HTML元素
                通过标签名获取HTML元素,它获取的其实是一个元素集合
                
                var ps = document.getElementsByTagName('h1');
                //  ps 是一个集合    可以通过下标去寻找
                //  ps  下标是从 0
    //          console.log(ps[0]);]
                ps[0].style.background = 'yellow';
                    
                    
                    
            3. getElementsByClassName()
                通过class类名来去获取HTML元素
                获取到的也是一个集合
            
                var ps = document.getElementsByClassName('p');
            
    //          var t = ps[0].innerHTML;
    //          var t = ps[1].innerHTML;
    //          //   innerHTML   获取元素的内容
    //          console.log(t);
                for(var i=0;i<ps.length;i++){
    //              System.out.println(ps[i].innerHTML)
                    console.log(ps[i].innerHTML)
                }
                
    
        style.background         //  给元素添加背景色
             font-size   ...
        
        innerHTML     //  获取元素内容
    

        //  2.   修改HTML元素
            
                先获取到元素,才能去修改
            
            var  p = document.getElementsByTagName('p')[0];
            var  btn = document.getElementsByTagName('button')[0];
            
            //  给btn添加点击事件       
            //    onclick   点击事件
            btn.onclick = function(){
                p.innerHTML = '我是修改后的p标签'
                p.className = 'red';
            }
    

            //   节点家族
    
                //  childNode
                    获取元素的子节点
                        text   文本节点   nodeType = 3;
                        h1    元素节点     nodeType = 1;
                        div   元素节点    nodeType = 1;
                        
                    在HTML  h1,div,ul 都是标签  对应获取的节点 他就是元素节点
                    区分节点的类型:   通过nodeType去区分
                        
                //  children
                    只是获取元素的子元素节点
                    var oDiv = document.getElementById('head_container');
                    
                    var childs = oDiv.children;
                    
                    console.log(childs);
                    
                //  previousSibling
                    找到元素的上一个节点
                    var ul = document.getElementById('ul');         
                    //   previousSibling
                    var pre = ul.previousSibling;
                    console.log(pre);
                    
                    
                //  nextSibling
                    找到元素的下一个节点
                    var ul = document.getElementById('ul');         
                    //   nextSibling
                    var next = ul.nextSibling.nextSibling;
                    console.log(next);
                
                //  parentNode
                    找到元素的父节点
                    
                    var ul = document.getElementById('ul');         
                    //   parentNode
                    var parent = ul.parentNode;
                    console.log(parent);
            
            //  3.   创建     
                //  createElement()
                    创建节点    
                //  创建节点
                //  createElement
                var h1 = document.createElement('h1');
                    h1.innerHTML = '我是h1';
                 console.log(h1);   
                    
                    
            //  4.   添加 
                //  appendChild()
                    向元素内添加一个子节点
                var p = document.createElement('p');
                p.innerHTML = '我是p';
                p.style.color = 'blue';
                oDiv.appendChild(p);        
                    
                    
            
            //  5.   删除     
                //  removeChild()
                    移除节点
                    
            
                //  向页面添加一个元素 
                //  向元素中再添加一个元素
    

    // 事件 event

        onload    页面加载事件
            页面加载完成发生
        
        onunload    退出页面
            页面关闭时发生
    
        onclick   点击事件
            鼠标点击时发生 
        ondbclick
            鼠标双击时候发生
        
        onmouseover     鼠标移入事件
        onmouseenter     同上
            输入移入目标时发生
        
        onmouseleave     鼠标移出事件
        onmouseout      同上
            鼠标移出目标时发生
        
        onmousedown      鼠标按下事件
            鼠标按下时发生
        onmouseup        鼠标弹起事件
            鼠标弹起时发生
        onmousemove      鼠标移动事件
            鼠标移动时发生
            
            
        event  事件对象
            在一个事件发生时它都会伴随着一个事件对象
            
            
            
        onkeyup     键盘按键弹起时执行     只执行一次
        
        onkeydown    键盘按下时执行     可以执行多次
        
        onkeypress     键盘按下之后弹起之前执行执行 ,输出字符   可以执行多次
        
        
        onfocus     输入框(input)获取焦点时候发生
        //  onfocus    获取焦点
            inp.onfocus = function(){
                console.log('hello');
            }
        
        onblur      输入框(input)失去焦点时候发生
        //  onblur    失去焦点
            inp.onblur = function(){
                console.log('beybey');
            }
        
        
        oninput      输入框(input)在输入的时候发生
        //  oninput   输入时候发生
            inp.oninput = function(){
                var v = inp.value;
                console.log(v);
            }
        
        onsubmit       表单提交时发生
        //  onsubmit
            info.onsubmit = function(){
                if(user.value != "" && user.value.length >= 3){
                    if(pas.value != "" && pas.value.length >= 6){
                        console.log(user.value,pas.value)
                        alert('表单提交了')
                    }else{
                        alert('密码长度不能小于6');
                        return false;
                    }
                }else{
                    alert('用户名长度不能小于3');
                    return false;
                }
            }
        onreset        重置  <input type='reset' />
        
                <input type="reset" value="重置" />
    
    
    //<div class="box">
                
            </div>
            <button>添加</button>
            <button>删除</button>
            <button>返回</button>
    <script>
                    var oDiv = document.getElementsByTagName('div')[0];
                var btn = document.getElementsByTagName('button')[0];
                var btn1 = document.getElementsByTagName('button')[1];
                var btn2 = document.getElementsByTagName('button')[2];
                //   add
                btn.onclick = function(){
        
                    var span = document.createElement('span');
                    
                    oDiv.appendChild(span);
                    
                }
                //  remove
                btn1.onclick = function(){
                    // removeChild()
                    var span = document.getElementsByTagName('span');
                    for(var i=span.length-1;i>=0;i--){
                        oDiv.removeChild(span[i]);
                    }
                }
                btn2.onclick = function(){
                    // removeChild()
                    del(0);
                }
                
                function del(num){
                    var span = document.getElementsByTagName('span');
                    //  span是一个集合,不能直接删除
                    if(span.length != 0){
                        oDiv.removeChild(span[num]);
                    }
                }
    </script>
    
    Xshot-0032.png
    <script>
                var oDiv = document.getElementsByClassName('box')[0];
            
                //  鼠标按下
                oDiv.onmousedown = function(event){
                    var disx = oDiv.offsetLeft; //  div距窗口左边的距离
                    var disy = oDiv.offsetTop;//  div距窗口上边的距离
                    var mX = event.clientX;   //  鼠标按下时的横坐标
                    var mY = event.clientY;   //  鼠标按下时的纵坐标
                    var dX = mX - disx;     // 鼠标按下时距离盒子左边的距离
                    var dY = mY - disy;     // 鼠标按下时距离盒子上边的距离
                    console.log(dX,dY);
                    document.onmousemove =function(event){    //  鼠标移动的时候,让盒子跟着鼠标一起走
                        var x = event.clientX;   // 鼠标移动时的横坐标
                        var y = event.clientY;   //  鼠标移动时的纵坐标
                        var px = x - dX;   //鼠标移动时盒子距离窗口左边的距离
                        var py = y - dY;   //鼠标移动时盒子距离窗口上边的距离
                                           //oDiv.style.marginLeft = px + 'px';
                                           //oDiv.style.marginTop = py + 'px';
                        if(px<0){
                            px = 0;
                        }
                        if(py<0){
                            py = 0;
                        }
                        var sW = document.body.clientWidth;
                        var sH = document.body.clientHeight;
                        if(px>sW-oDiv.offsetWidth){
                            px = sW-oDiv.offsetWidth;
                        }
                        if(py>sH-oDiv.offsetHeight){
                            py = sH-oDiv.offsetHeight;
                        }
                        
                        oDiv.style.left = px + 'px';
                        oDiv.style.top = py + "px";
                        return false;
                    }
                    document.onmouseup = function(){   //  鼠标松开的时候,解绑鼠标移动事件
                        document.onmousemove = null;
                    }
                }
                
            </script>
    

    相关文章

      网友评论

          本文标题:前端一周01 JavaScript DOM、 事件 e

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