BOM操作

1、BOM

             * BOM (Browser Object Model)
                浏览器对象模型     
                BOM是关于浏览器的方法,属性,事件     
2、window.open()
             *         参数
             *             1、要找开的新网页的地址
             *             2、找开方式_blank(新窗口默认) _self(自身) ... iframName(页面内嵌套)
             *             3、打开新窗口的一些信息
3、window.close()
             *     关闭页面
             *         不同的浏览器表现形式不一样
                    在ff/O下, 只允许关闭由window.open方法所打开的窗口
  1. window.onload=function(){
  2. var open=document.getElementById("open");
  3. var close=document.getElementById("close");
  4. open.onclick=function(){
  5. window.open('http://www.baidu.com','_blank');
  6. };
  7. close.onclick=function(){
  8. window.close();
  9. };
  10. };
  11. </script>
  12. </head>
  13. <body>
  14. <inputtype="button"value="打开新的页面"id="open"/>
  15. <inputtype="button"value="关闭新的页面"id="close"/>
  16. </body>
4、userAgent
             * window.navigator.userAgent        用户代理信息
             *     操作系统 、 浏览器内核 、浏览器版本等
                        console.log(window.navigator.userAgent);
5、window.location
             * window.location --- 地址栏信息
                字符串版的地址栏信息
                window.location.search
                地址栏查询信息 (问号到#号之间的所有内容,包含问号但不包含#)
                window.location.hash
                锚点信息(#号后面的所有内容,包含#)
  1. console.log(window.location);
  2. console.log(typeof window.location); //object
  3. console.log(window.location.search);
  4. console.log(window.location.hash);
  5. console.log(window.location.href);
6、可视区的尺寸
 
             * 元素的宽
             *     offsetWidth            带边框
             *     clientWidth            不带边框
             * 
             * 元素的高
             *     offsetHeight            带边框
             *     clientHeight            不带边框
             * 
             * 可视区的宽/高(DOM)
             *     document.documentElement.clientWidth
             *     document.documentElement.clientHeight
             * 
             * 可视区的宽/高(BOM)
             *     window.innerWidth
             *     window.innerHeight
             *     不兼容低版本的浏览器
7、获取滚动条距离以及设置滚动条距离
             * 获取滚动条的距离(DOM)
             *     
             *     chrom        document.body.scrollTop
             *     其它            document.documentElement.scrollTop
             * 
             * 获取滚动条的距离(BOM)
             *     window.pageXOffset/window.pageYOffset
             * 
             * 设置滚动条的距离
             *         window.scrollTo(x,y)
             *         全兼容,两个参数必需同时出现
  1. window.onload=function(){
  2. document.onclick=function(){
  3. console.log(document.body.scrollTop);
  4. console.log(window.pageYOffset);
  5. var t=window.pageYOffset;
  6. var time=setInterval(function(){
  7. t-=100;
  8. if(t<10){
  9. clearInterval(time);
  10. }
  11. window.scrollTo(0,t);
  12. },16);
  13. };
  14. };
8、内容高度
     1.offsetHeight         获取到的是元素的高度,包括边框
    2.clientHeight            获取到的是元素的高度,不包括边框
    3.scrollHeight            被内容撑开的高度,如果内容小于元素告诉,获取到元素高度(无边框)
    4.document.body.scrollHeight   获取body的高度
    5.document.body.offsetHeight  获取文档内容高度
  1. <style>
  2. #div1{
  3. width:100px;
  4. height:100px;
  5. height:100px;
  6. padding:10px;
  7. border:1px solid #f00;
  8. }
  9. #div2{
  10. height:200px;
  11. background: red;
  12. }
  13. body{
  14. border:1px solid #000;
  15. }
  16. </style>
  17. <body>
  18. <divid="div1">
  19. <divid="div2"></div>
  20. </div>
  21. </body>
  22. window.onload=function(){
  23. var div1=document.getElementById("div1");
  24. document.onclick=function(){
  25. console.log('offsetHeight',div1.offsetHeight); //122
  26. console.log('clientHeight',div1.clientHeight); //120
  27. console.log('scrollHeight',div1.scrollHeight); //120
  28. console.log(document.body.scrollHeight); //955
  29. console.log(document.body.offsetHeight); //124
  30. };
  31. };
 
9、onscroll 与 onresize
             * window.onscroll()
             *     当滚动条滚动的时候触发这个方法
             * 
             * window.onresize()
             *     当窗口改变大小的时候触发这个方法
  1. var i=0;
  2. window.onscroll=function(){
  3. i++;
  4. console.log(i);
  5. }
  6. window.onresize=function(){
  7. i--;
  8. console.log(i);
  9. };
10、回到顶部
  1. <style>
  2. #div1{
  3. width:100px;
  4. height:100px;
  5. background: red;
  6. font:20px/100px"微软雅黑";
  7. color:#fff;
  8. text-align: center;
  9. position:fixed;
  10. right:0;
  11. bottom:0;
  12. display: none;
  13. }
  14. </style>
  15. <script>
  16. window.onload=function(){
  17. var div=document.getElementById("div1");
  18. var time;
  19. window.onscroll=function(){
  20. var t=window.pageYOffset;
  21. if(t>200){
  22. div1.style.display='block';
  23. }else{
  24. div1.style.display='none';
  25. }
  26. div.onclick=function(){
  27. time=setInterval(function(){
  28. t-=50;
  29. window.scrollTo(0,t);
  30. if(t<=0){
  31. clearInterval(time);
  32. }
  33. },15)
  34. };
  35. };
  36. };
  37. </script>
  38. </head>
  39. <bodystyle="height:3000px;">
  40. <divid="div1">加到顶部</div>
  41. </body>
 
 





原文地址:https://www.cnblogs.com/CafeMing/p/6501635.html