zoukankan      html  css  js  c++  java
  • 前端JavaScript之BOM

    BOM:浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。

    1.window对象

    所有浏览器都支持 window 对象。
    概念上讲.一个html文档对应一个window对象.
    功能上讲: 控制浏览器窗口的.
    使用上讲: window对象不需要创建对象,直接使用即可.

    方法

    alert()            显示带有一段消息和一个确认按钮的警告框。
    confirm()          显示带有一段消息以及确认按钮和取消按钮的对话框。
    prompt()           显示可提示用户输入的对话框。
    
    open()             打开一个新的浏览器窗口或查找一个已命名的窗口。
    close()            关闭浏览器窗口。
    
    setInterval()      按照指定的周期(以毫秒计)来调用函数或计算表达式。
    clearInterval()    取消由 setInterval() 设置的 timeout。
    setTimeout()       在指定的毫秒数后调用函数或计算表达式。
    clearTimeout()     取消由 setTimeout() 方法设置的 timeout。
    scrollTo()         把内容滚动到指定的坐标。

     2.相关操作

    2.1打开窗口

    window.open(url,target)

    url:要打开的地址

    target:新窗口的位置,可以是_blank,_self,_parent父框架

    2.2location对象属性(重点)

    href    跳转
    
    hash 返回url中#后面的内容,包含#
    
    host 主机名,包括端口
    
    hostname 主机名
    
    pathname url中的路径部分
    
    protocol 协议 一般是http、https
    
    search 查询字符串

    例:点击网页5s后跳转

    <body>
    <div>点击后5秒后跳转百度</div>
    <script>
    
        var div = document.getElementsByTagName("div")[0];
    
        div.onclick = setTimeout(function () {
            location.href = "http://www.baidu.com";   
            //点击div时,跳转到指定链接,这里设为_blank,注意拦截
     // window.open("http://www.baidu.com","_blank");  
        },5000);
    
    </script>
    </body>

    2.3location对象方法

    location.reload():重新进行加载

    3.client,offset,scroll系列案例操作

    3.1client(屏幕可视区域数值大小会随着窗口大小的变化而变化)

    * clientTop 内容区域到边框顶部的距离 ,说白了就是边框的高度
    * clientLeft 内容区域到边框左部的距离,说白了就是边框的宽度
    * clientWidth 内容区域+左右padding 可视宽度
    * clientHeight 内容区域+ 上下padding 可视高度

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                .box{
                     200px;
                    height: 200px;
                    position: absolute;
                    border: 10px solid red;
                    /*margin: 10px 0px 0px 0px;*/
                    padding: 80px;
                }
            </style>
        </head>
        <body>
            <div class="box">
                哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
            </div>
        </body>
        <script type="text/javascript">
            var oBox = document.getElementsByClassName('box')[0];
            console.log(oBox.clientTop);
            console.log(oBox.clientLeft);
            console.log(oBox.clientWidth);
            console.log(oBox.clientHeight);      
        </script>
        
    </html>
    复制代码

    效果:

    2.offset系列

    3.sroll系列

  • 相关阅读:
    今天遇到的报错Babel noteThe code generator has deoptimised the styling of ...as it exceeds the max of 500KB.
    轻松理解Promise.all 、Promise.then、Promise.race有什么区别以及使用方法
    JS循环类数组对象,获得页面所有的某个ClssaName,处理它的属性
    Angular在用户登录后设置授权请求头headers.append('Authorization', 'token');
    webpack配置less以及js中引入的图片问题
    超级容易理解的Three.js中的物体rotation
    新下载了一个框架,然后npm install时候报错npm ERR! Maximum call stack size exceeded
    webpack打包后发现有一部分代码还携带注释,如何解决?/webpack打包删除注释以及console.log--快快点进来看一看吧~~
    composer 下载扩展包
    postman 模拟登录状态
  • 原文地址:https://www.cnblogs.com/LearningOnline/p/9125365.html
Copyright © 2011-2022 走看看