JS的BOM操作语法
整理了一下JS的BOM操作语法,这里记录一下。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>js的BOM操作</title> 6 <style type="text/css"> 7 #dv3{ 8 width: 300px; 9 height: 200px; 10 background-color: yellow; 11 } 12 13 #dv4{ 14 width: 300px; 15 height: 200px; 16 background-color: green; 17 overflow-y: auto; 18 overflow-x: auto; 19 } 20 21 #dv5{ 22 width: 100px; 23 height: 200px; 24 background-color: gray; 25 overflow-y: auto; 26 } 27 28 .head{ 29 width: 100%; 30 height: 120px; 31 background-color: #808080; 32 } 33 34 .menu{ 35 width: 100%; 36 height: 40px; 37 background-color: #f00; 38 } 39 .main{ 40 width: 100%; 41 height: 1000px; 42 background-color: #ff6a00; 43 } 44 .top{ 45 position: fixed; 46 top: 0px; 47 } 48 49 #dv9{ 50 width: 300px; 51 height: 200px; 52 background-color: red; 53 } 54 </style> 55 </head> 56 <body> 57 <div> 58 <p>js的BOM操作模块</p> 59 </div> 60 <input type="button" name="" value="点击" id="btn1"> 61 62 <input type="button" name="" value="页面跳转到百度" id="btn2"> 63 <input type="button" name="" value="通过历史记录跳转到百度" id="btn3"> 64 65 <input type="button" name="" value="停止计时器" id="btn4"> 66 67 <div style="width: 300px;height: 200px;background-color: red" id="dv1"></div> 68 <input type="button" name="" value="div背景色渐变" id="btn5"> 69 70 <div style="width: 400px;height: 300px;background-color: blue" id="dv2"></div> 71 <input type="button" name="" value="div宽度渐变" id="btn6"> 72 73 <div id="dv3"></div> 74 <input type="button" name="" value="offset获取dv3的属性值" id="btn7"> 75 76 <div id="dv4">aasdfadsfasdfasdfasdfasdfasdfasdfasdfasdfasd</div> 77 <input type="button" name="" value="scroll获取dv4的属性值" id="btn8"> 78 79 <div id="dv5">阿斯顿福建阿斯顿福建安利的时间发打飞机阿道夫阿道夫奥德asdf adfasdf dfasdf asdf asdf asdf asd赛法开始法律上的发送到发送地方</div> 80 81 <div class="head" id="dv6"></div> 82 <div class="menu" id="dv7"></div> 83 <div class="main" id="dv8"></div> 84 85 <div id="dv9"></div> 86 <input type="button" name="" value="确认" id="btn9"> 87 <script type="text/javascript"> 88 //页面加载完出现弹窗 89 window.onload=function(){ 90 alert("我是js的最后一大模块"); 91 } 92 93 //location 94 console.log(window.location); //获取当前页面的URL 95 console.log(window.location.host); //获取当前RUL的主机名 96 console.log(window.location.port); //获取当前RUL的端口号 97 console.log(window.location.pathname); //获取当前RUL指向的文件的路径 98 99 //使用链接进行页面跳转(可以返回前一页面) 100 document.getElementById("btn1").onclick=function(){ 101 window.location.href="http://www.baidu.com"; 102 } 103 104 //使用方法进行页面跳转(可以返回前一页面) 105 document.getElementById("btn1").onclick=function(){ 106 window.location.assign("http://www.baidu.com"); 107 } 108 109 //使用方法进行页面跳转(不可以返回前一页面) 110 document.getElementById("btn1").onclick=function(){ 111 window.location.replace("http://www.baidu.com"); 112 } 113 114 //刷新页面 115 document.getElementById("btn1").onclick=function(){ 116 window.location.reload(); 117 } 118 119 //历史记录 120 document.getElementById("btn2").onclick=function(){ 121 window.location.href="http://www.baidu.com"; //页面跳转到百度 122 } 123 document.getElementById("btn3").onclick=function(){ 124 window.history.forward(); //页面跳转到百度后返回,再点击这个按钮,通过历史记录又回到百度 125 } 126 127 //获取系统和浏览器信息 128 console.log(window.navigator.userAgent); 129 130 131 132 /*定时器*/ 133 //循环执行的计时器 134 setInterval(function(){ 135 alert("3秒出现一次") 136 },3000); //每隔3秒钟执行一次定时器里面的代码 137 138 //点击按钮,停止循环执行的计时器 139 document.getElementById("btn4").onclick=function(){ 140 window.clearInterval(time); 141 } 142 var time=setInterval(function(){ 143 alert("3秒出现一次") 144 },3000); 145 146 //只执行一次的计时器 147 setTimeout(function(){ 148 alert("2秒出现一次") 149 },2000); 150 151 //点击按钮,停止只执行一次的计时器 152 document.getElementById("btn4").onclick=function(){ 153 window.clearTimeout(time); 154 } 155 var time=setTimeout(function(){ 156 alert("2秒出现一次") 157 },2000); 158 159 //定时器实现背景色渐变 160 document.getElementById("btn5").onclick=function(){ //按钮点击事件 161 var i=10; 162 var time=setInterval(function(){ 163 i--; 164 if(i<0){ 165 window.clearInterval(time); 166 } 167 document.getElementById("dv1").style.opacity=i/10; 168 },1000); 169 } 170 171 //定时器实现div宽度渐变 172 document.getElementById("btn6").onclick=function(){ 173 var wid=400; 174 var time=setInterval(function(){ 175 wid+=10; 176 if(wid==500){ 177 window.clearInterval(time); 178 } 179 document.getElementById("dv2").style.width=wid+"px"; //必须拼接上px 180 },1000) 181 } 182 183 184 185 /*offset属性*/ 186 document.getElementById("btn7").onclick=function(){ 187 console.log(document.getElementById("dv3").offsetWidth); //获取dv3的宽 188 console.log(document.getElementById("dv3").offsetHeight); //获取dv3的高 189 190 console.log(document.getElementById("dv3").offsetTop); //获取dv3的margin-top(不是相对于父级dv的margin-top,而是相对于html页面) 191 console.log(document.getElementById("dv3").offsetLeft); //获取dv3的margin-left(不是相对于父级dv的margin-left,而是相对于html页面) 192 } 193 194 195 196 /*scroll属性*/ 197 document.getElementById("btn8").onclick=function(){ 198 console.log(document.getElementById("dv4").scrollHeight); //dv4里的内容为超出dv4高度时,返回dv4的高度,超出时,返回内容的高度 199 console.log(document.getElementById("dv4").scrollWeight); //获取dv4的高度 200 console.log(document.getElementById("dv4").scrollTop); //获取dv4里的竖直滚动条,滚动后,内容离dv4顶端的距离 201 console.log(document.getElementById("dv4").scrollLeft); //获取dv4里的水平滚动条,滚动后,内容离dv4左边的距离 202 } 203 204 //onscroll事件(div的滚动事件) 205 document.getElementById("dv5").onscroll=function(){ 206 console.log(this.scrollTop); //拖动竖直滚动条时,输出内容距离dv5顶端的距离 207 } 208 209 //页面的滚动事件 210 window.onscroll=function(){ 211 console.log(document.documentElement.scrollTop); //拖动页面竖直滚动条,输出内容距离页面顶端的距离 212 } 213 214 //固定导航栏 215 window.onscroll=function(){ 216 if(document.documentElement.scrollTop>=document.getElementById("dv6").offsetHeight){ 217 //页面滚动条下拉超过一定高度,就将dv7置顶 218 document.getElementById("dv7").className="menu top"; //可同时给元素赋多个className 219 //上面一步会遮挡dv8里面的内容,所以将dv8的marginTop设置成dv7的宽度 220 document.getElementById("dv8").marginTop=document.getElementById("dv7").offsetHeight; 221 } 222 else{ 223 //页面滚动条又回到原位,再将dv7还原到最初的位置 224 document.getElementById("dv7").className="menu"; 225 //再还原dv8的marginTop 226 document.getElementById("dv8").marginTop="0px"; 227 } 228 } 229 230 231 232 /*client属性*/ 233 document.getElementById("btn9").onclick=function(){ 234 console.log(document.getElementById("dv9").clientWidth); //获取div可视区域的宽(不受margin、border宽度的影响) 235 console.log(document.getElementById("dv9").clientHeight); //获取div可视区域的高(不受margin、border宽度的影响) 236 console.log(document.getElementById("dv9").clientLeft); //获取div的border-left(不受margin、border宽度的影响) 237 console.log(document.getElementById("dv9").clientTop); //获取div的border-top(不受margin、border宽度的影响) 238 } 239 </script> 240 </body> 241 </html>
。