学js的第11天

day11 BOM

1.DOM表单操作

1.1 快速获取表单元素

  • 快速获取表单元素 form.标签name属性

    //1.获取元素
    var oForm = document.getElementsByTagName("form")[0];
    ​
    //2.快速获取表单元素  form.标签name属性
    console.log(oForm.user);
    console.log(oForm.password);
    console.log(oForm.sex); //RadioNodeList(2) [input, input, value: "on"]
    console.log(oForm.sex.value);
    console.log(oFormhobby);

1.2 表单事件

  • 表单事件

    • oForm.onsubmit : 提交表单的时候触发

      return true : 默认 允许提交

      return false:阻止提交

      //2.  oForm.onsubmit : 提交表单的时候触发
      oForm.onsubmit = function(){
          if(oForm.user.value == ""){
              alert("请输入内容");
              //阻止提交
              return false;
          }
      }
    • oForm.onreset : 重置表单的时候触发

      return true : 默认 允许重置

      return false:阻止重置

      //3.oForm.onreset : 重置表单的时候触发
      oForm.onreset = function(){
          //带确认的对话框,确定--true   取消---false
          var s = confirm("是否需要重置");
          if(s == true){
              return true;
          }else{
              return false;
          }
      }
  • 表单元素事件

    • input.onblur : 失去焦点时触发

    • input.onfocus : 获取焦点时触发

      //4.input.onfocus : 获取焦点时触发
      oForm.user.onfocus = function(){
          this.style.background = "green";
      }
      //5.input.onblur : 失去焦点时触发
      oForm.user.onblur = function(){
          this.style.background = "red";
      }
    • input.oninput : 内容发生变化时触发 / ie: input.onpropertychange

      //6. input.oninput : 内容发生变化时触发
      /*oForm.user.oninput = function(){ //标准
          console.log(this.value);
      }
      oForm.user.onpropertychange = function(){ //ie
          console.log(this.value); 
      }*/
      oForm.user.oninput = change;
      oForm.user.onpropertychange = change; 
      function change(){
          console.log(this.value);
      }
    • input.onchange : 失去焦点时内容和上一次相比发生变化时触发

      //7.input.onchange : 失去焦点时内容发生变化时触发
      oForm.user.onchange = function(){
          console.log(this.value);
      }

2.BOM

  • BOM:Browser Object Model 浏览器对象模型

  • window和document

    • window:js中最顶层的一个对象,窗口

    • document:文档

2.1.window提供的方法

2.1.1 系统对话框

  • alert(message) : 警告框

  • confirm("message"): 带确认的对话框

  • prompt(message,default) : 带输入的对话框

    //1.   alert(message) : 警告框
    alert("今天周一!!!");
    ​
    //2. confirm("message"): 带确认的对话框  确定---true  取消---false
    var s = confirm("明天听写吗?");
    console.log(s);
    ​
    //3. prompt(message,default) : 带输入的对话框   确定--输入的内容  取消--null 
    var text = prompt("请输入今天的作业个数",0);  
    console.log(text);

2.1.2 open与close

  • open()打开一个新窗口

    /*open写在行间,需要添加window
    open(url,target[_self,_blank],特殊字符串,是否取代当前窗口在浏览记录中的位置)
    返回新窗口的window*/
    <button onclick = "window.open('http://www.taobao.com')">taobao</button>
    <button οnclick='fun()'>京东</button>
    <script>
        function fun(){
        var newWindow = open("http://www.jd.com","_blank","width:500px;height:500px");
        newWindow.alert("0713到处一游");
    }
    </script>
  • close()关闭当前窗口

    <button οnclick="window.close()">关闭当前窗口</button>

2.1.3 loaction

  • ==location.href : 获取或设置当前窗口显示的url地址==

  • ==location.search:获取url中搜索内容==

  • ==location.protocol:协议==

    //1.location.href : 获取或设置当前窗口显示的url地址
    console.log(location.href);
    setTimeout(function(){
        //location.href = "http://www.baidu.com";
        // location.reload(); //重构 刷新
    },2000);
    ​
    ​
    //2.如何快速获取url中搜索内容
    console.log(location.search);
    ​
    //3.协议
    console.log(location.protocol);     

2.1.4 history

1---》2----》3

当前处于2的页面,history.forward():前进 就会去到 3

当前处于2的页面,history.back() : 后退 就会去到 1

history.go() : 跳转 ,正数,前进n级,负数,后退n级

  • history.forward():前进

  • history.back() : 后退

  • history.go() : 跳转

2.2 BOM三大系列

获取元素的宽高

2.2.1 client : 可视区

  • ==元素.clientWidth : 获取元素的可视宽 content+padding==

  • ==元素.clientHeight : 获取元素的可视高 content+padding==

  • 元素.clientTop/Left:获取元素的上/左边框

  • ==获取屏幕的可视宽高:document.documentElement.clientWidth/Height==

    client系列:
        元素.clientWidth : 获取元素的可视宽   content+padding
        元素.clientHeight : 获取元素的可视高
        元素.clientTop: 获取元素的上边框
        元素.clientLeft:获取元素的左边框
    ​
        获取窗口的可视宽高:
        document.documentElement.clientWidth/clientHeight
    ​
      
    var oDiv = document.getElementsByTagName("div")[0];
    ​
    //1.获取元素的可视宽高
    console.log(oDiv.clientWidth); //120  content+padding
    ​
    //2.元素.clientTop: 获取元素的上边框
    console.log(oDiv.clientTop);
    ​
    //3.document.documentElement.clientWidth/clientHeight
    console.log(document.documentElement.clientWidth);

2.2.2 offset:占位

  • ==元素.offsetWidth : 获取元素的占位宽 content+padding+border==

  • ==元素.offsetHeight : 获取元素的占位高 content+padding+border==

  • ==元素.offsetTop:获取当前元素的顶部到定位父元素的距离,如果没有定位父元素到body的距离==

  • ==元素.offsetLeft:获取当前元素的左部到定位父元素的距离,如果没有定位父元素到body的距离==

    offset系列:占位宽高
        元素.offsetWidth:获取元素的占位宽
        元素.offsetHeight:获取元素的占位高
        元素.offsetTop : 获取元素的顶部距离定位父元素的距离,如果没有定位父元素获取到body的距离
        元素.offsetLeft : 获取元素的左部距离定位父元素的距离,如果没有定位父元素获取到body的距离
    ​
    var oDiv = document.getElementsByTagName("div")[0];
    var oP = document.getElementsByTagName("p")[0];
    ​
    //1.元素.offsetWidth:获取元素的占位宽
    console.log(oDiv.offsetWidth); //240  content+padding+border
    ​
    //2元素.offsetTop : 获取元素的顶部距离定位父元素的距离,如果没有定位父元素获取到body的距离
    console.log(oP.offsetTop); //120

2.2.3 scroll:滚动

  • 元素.scrollWidth:元素的实际内容宽

  • 元素.scrollHeight:元素的实际内容高

  • 元素.scrollTop:元素被卷去的高

  • 元素.scrollLeft:元素被卷去的宽

  • ==onscroll:滚动条滚动的时候触发==

  • ==页面被卷去的高:document.documentElement.scrollTop||document.body.scrollTop==

    ==注意:只有滚动距离可以设置:document.documentElement.scrollTop = 0;==

    //1.获取元素
    var oDiv = document.getElementsByTagName("div")[0];
    ​
    //2.元素.scrollWidth:元素的实际内容宽
    console.log(oDiv.scrollWidth); //1300
    ​
    //3.onscroll : 滚动条滚动的时候触发
    oDiv.onscroll = function(){
        console.log(oDiv.scrollTop); //元素.scrollTop:元素被卷去的高
        console.log(oDiv.scrollLeft); //元素.scrollTop:元素被卷去的宽
    }
    ​
    //页面的滚动距离
    window.onscroll = function(){
        console.log(document.documentElement.scrollTop || document.body.scrollTop);
    }

2.3 BOM三大事件

  • window.onscroll : 页面滚动事件,滚动条滚动的时候触发

  • window.onresize : 窗口可视区大小发生变化时触发

  • window.onload : 加载事件,等文档和资源都加载完成后触发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值