前端一周01 JavaScript DOM、 事件 e

2017-11-20  本文已影响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>
上一篇下一篇

猜你喜欢

热点阅读