最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中的BOM應(yīng)用

 更新時(shí)間:2018年02月02日 10:47:53   投稿:mrr  
我們?cè)?jīng)講過(guò)JS由三部分組成,其中一個(gè)部分就是BOM,用于對(duì)瀏覽器進(jìn)行操作。這篇文章我們主要來(lái)介紹BOM應(yīng)用,感興趣的朋友一起看看吧

我們?cè)?jīng)講過(guò)JS由三部分組成,其中一個(gè)部分就是BOM,用于對(duì)瀏覽器進(jìn)行操作。這節(jié)課我們主要就來(lái)介紹BOM。

BOM基礎(chǔ)

我們先來(lái)看一個(gè)BOM的最基礎(chǔ)功能:打開(kāi)、關(guān)閉窗口:

<html>
 <head>
  <meta charset="utf-8">
  <title>無(wú)標(biāo)題文檔</title>
 </head>
 <body>
  <input type="button" value="打開(kāi)窗口" onclick="window.open('http://www.zhinengshe.com/');" />
 </body></html>

open方法用于打開(kāi)一個(gè)窗口,相對(duì)的close方法用于關(guān)閉一個(gè)窗口。這里我們可以用open方法實(shí)現(xiàn)一個(gè)應(yīng)用:運(yùn)行代碼。

在這之前,我們要給大家補(bǔ)充一個(gè)關(guān)于document.write的小知識(shí)。

<!DOCTYPE HTML><html>
 <head>
  <meta charset="utf-8">
  <title>無(wú)標(biāo)題文檔</title>
 </head>
 <body>
  <input type="button" value="write" onclick="document.write('abc')" />
 </body></html>

打開(kāi)源碼可以發(fā)現(xiàn),當(dāng)我們點(diǎn)擊了按鈕后,整個(gè)頁(yè)面的源碼就只剩下了“abc”——也就是說(shuō),如果document.write如果放在事件里面使用,會(huì)先將頁(yè)面完全清空再重寫(xiě)。

可以看到,我們的運(yùn)行代碼案例,使用document.write方法是非常合適的:

<html>
 <head>
  <meta charset="utf-8">
  <title>無(wú)標(biāo)題文檔</title>
  <script>
  window.onload=function ()
  {
   var oTxt=document.getElementById('txt1');
   var oBtn=document.getElementById('btn1');
  
   oBtn.onclick=function ()
   {
    var oNewWin=window.open('about:blank', '_blank');
  
    oNewWin.document.write(oTxt.value);
   };
  };
  </script>
 </head>
 <body>
  <textarea id="txt1" rows="10" cols="40"></textarea><br>
  <input id="btn1" type="button" value="運(yùn)行" />
 </body></html>

其中_blank代表新打開(kāi)一個(gè)窗口(在本窗口打開(kāi)用_self),about:blank代表打開(kāi)的是一個(gè)空白窗口,然后我們使用document.write向新窗口寫(xiě)入html,就可以在新窗口運(yùn)行html代碼了。

講完open后,我們來(lái)說(shuō)說(shuō)close的一些問(wèn)題。close的使用非常簡(jiǎn)單,使用window.close便可以執(zhí)行關(guān)閉窗口的事件。但是在火狐瀏覽器下,是無(wú)法close一個(gè)用戶(hù)打開(kāi)的窗口,只有一個(gè)窗口是用open方法打開(kāi)的時(shí)候才能用close方法關(guān)閉。

講完open和close方法后,我們來(lái)說(shuō)兩個(gè)常用的屬性:window.nevigator.userAgent和window.location。前者的作用是獲取當(dāng)前瀏覽器的版本信息,后者的作用是獲取當(dāng)前網(wǎng)頁(yè)的地址(不僅可以讀取,也可以賦值,可以通過(guò)修改location跳轉(zhuǎn)當(dāng)前網(wǎng)頁(yè)的網(wǎng)址),大家可以使用一下看看返回的內(nèi)容,這里就不再列舉了。

尺寸及坐標(biāo)

這里我們討論一下JS關(guān)于尺寸和坐標(biāo)的內(nèi)容。

首先要提到的就是關(guān)于可視區(qū)尺寸的知識(shí)。什么是可視區(qū)尺寸呢?其實(shí)就是用戶(hù)端能在屏幕上看到網(wǎng)頁(yè)部分的尺寸??梢晠^(qū)的尺寸會(huì)隨著窗口的大小而變化。

通過(guò)document.documentElement.clientWidth和document.documentElement.clientHeight可以獲取當(dāng)前頁(yè)面可視區(qū)的寬度和高度。

<html>
 <head>
  <meta charset="utf-8">
  <title>無(wú)標(biāo)題文檔</title>
  <script>
  window.onload=function ()
  {
   var oBtn=document.getElementById('btn1');
   oBtn.onclick=function ()
   {
    alert('寬:'+document.documentElement.clientWidth+'高:'+document.documentElement.clientHeight);
   };
  };
  </script>
 </head>
 <body>
  <input id="btn1" type="button" value="可視區(qū)大小" />
 </body></html>

效果如下:

此外針對(duì)可視區(qū),還有一個(gè)屬性叫scrollTop,也就是滾動(dòng)距離,或者說(shuō)是可視區(qū)到頁(yè)面頂端的距離。

<!DOCTYPE HTML><html>
 <head>
 <meta charset="utf-8">
 <title>無(wú)標(biāo)題文檔</title>
 <script>
 document.onclick=function ()
 {
  //IE、FF
  //alert(document.documentElement.scrollTop);
 
  //chrome
  //alert(document.body.scrollTop);
 
  var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
 
  alert(scrollTop);
 };
 </script>
 </head>
 <body style="height:2000px;">
 </body></html>

效果如下:

//這里有圖

值得注意的是document.documentElement.scrollTop僅僅在ie下兼容,在chrome下的寫(xiě)法則為document.body.scrollTop,因此我們用||方法處理兼容問(wèn)題。
常用方法和事件

這里我們嘗試使用除fixed以外的另一種方法實(shí)現(xiàn)元素的固定定位(fixed在ie6下不兼容)。

這里我們?cè)佼?huà)一張圖:

可以看得出,只要我們將黑線(xiàn)的長(zhǎng)度計(jì)算出來(lái),就可以將右下方的div塊進(jìn)行固定定位了。而黑線(xiàn)的長(zhǎng)度正好等于可視區(qū)高度減去div塊的offsetHeight。

<html>
 <head>
  <meta charset="utf-8">
  <title>無(wú)標(biāo)題文檔</title>
  <style>
  #div1 {width:200px; height:150px; background:red; position:absolute; right:0; bottom:0;}
  body {height:2000px;}
  </style>
  <script>
  window.onscroll=function ()
  {
   var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
   var oDiv=document.getElementById('div1');  oDiv.style.top=document.documentElement.clientHeight-oDiv.offsetHeight+scrollTop+'px';
  };
  </script>
 </head>
 <body>
 <div id="div1"></div>
 </body></html>

效果如下:

可以看到我們的div塊有輕微的抖動(dòng),因?yàn)閛nscroll函數(shù)一直在發(fā)生,每發(fā)生一次便會(huì)調(diào)用一次,所以會(huì)發(fā)生這種情況。此外還存在一個(gè)更嚴(yán)重的情況:如果我們改變窗口大小,div塊并不會(huì)跟著走而是保持在原地,因此我們還要用到另一個(gè)事件——

window.onresize(頁(yè)面大小改變時(shí)觸發(fā)的事件:):

window.onscroll=window.onresize=function (){...}

最后我們來(lái)說(shuō)說(shuō)幾個(gè)常用的系統(tǒng)對(duì)話(huà)框:

  • alert("內(nèi)容") 警告框,沒(méi)有返回值
  • confirm("提問(wèn)的內(nèi)容") 選擇框,會(huì)給確定或取消選項(xiàng),返回一個(gè)boolean
  • prompt("提示文字","默認(rèn)文字") 會(huì)彈出一個(gè)可輸入的文本框,返回值為輸入的文本內(nèi)容(字符串),不輸入則為null

總結(jié)

以上所述是小編給大家介紹的JS中的BOM應(yīng)用,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 微信小程序事件流原理解析

    微信小程序事件流原理解析

    這篇文章主要介紹了微信小程序事件流原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 重學(xué)JS之顯示強(qiáng)制類(lèi)型轉(zhuǎn)換詳解

    重學(xué)JS之顯示強(qiáng)制類(lèi)型轉(zhuǎn)換詳解

    這篇文章主要給大家介紹了關(guān)于重學(xué)JS之顯示強(qiáng)制類(lèi)型轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • javaScript基礎(chǔ)詳解

    javaScript基礎(chǔ)詳解

    本文主要介紹了javaScript的基礎(chǔ)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • 使用原生JS實(shí)現(xiàn)一個(gè)日期選擇器(DatePicker)組件

    使用原生JS實(shí)現(xiàn)一個(gè)日期選擇器(DatePicker)組件

    這篇文章主要為大家介紹了如何通過(guò)原生HTML/CSS/JavaScript完成一個(gè)日期選擇器(datepicker)組件,一個(gè)純手搓的組件的開(kāi)發(fā),有需要的可以了解下
    2025-01-01
  • javascript實(shí)現(xiàn)拖放效果

    javascript實(shí)現(xiàn)拖放效果

    這篇文章主要介紹了javascript實(shí)現(xiàn)拖放效果的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • js實(shí)現(xiàn)String.Fomat的實(shí)例代碼

    js實(shí)現(xiàn)String.Fomat的實(shí)例代碼

    下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)String.Fomat的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • JavaScript中一個(gè)奇葩的IE瀏覽器判斷方法

    JavaScript中一個(gè)奇葩的IE瀏覽器判斷方法

    在寫(xiě)原生的Javascript的時(shí)候,因?yàn)镮E的JS引擎與標(biāo)準(zhǔn)瀏覽器的JS引擎之間總有那么些差異,所以經(jīng)常會(huì)去判斷是否是IE瀏覽器
    2014-04-04
  • javascript和php使用ajax通信傳遞JSON的實(shí)例

    javascript和php使用ajax通信傳遞JSON的實(shí)例

    今天小編就為大家分享一篇javascript和php使用ajax通信傳遞JSON的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • JavaScript結(jié)合Canvas繪畫(huà)畫(huà)運(yùn)動(dòng)小球

    JavaScript結(jié)合Canvas繪畫(huà)畫(huà)運(yùn)動(dòng)小球

    這篇文章主要介紹了JavaScript結(jié)合Canvas畫(huà)運(yùn)動(dòng)小球,canvas被稱(chēng)為畫(huà)布,可以結(jié)合javascript實(shí)現(xiàn)繪制各種圖形,制作各種炫酷的動(dòng)畫(huà)效果,下面文章更多詳細(xì)內(nèi)容介紹需要的小伙伴可以參考一下
    2022-03-03
  • 解決 FireFox 下[使用event很麻煩] 的問(wèn)題.

    解決 FireFox 下[使用event很麻煩] 的問(wèn)題.

    解決 FireFox 下[使用event很麻煩] 的問(wèn)題....
    2006-08-08

最新評(píng)論

巍山| 瓦房店市| 北安市| 法库县| 台中市| 平利县| 大同市| 绵竹市| 中江县| 靖西县| 措勤县| 鹿泉市| 井陉县| 锦州市| 和硕县| 梁河县| 朔州市| 清涧县| 伊川县| 西宁市| 无棣县| 沂源县| 桐梓县| 易门县| 甘肃省| 永春县| 沾化县| 吉隆县| 宕昌县| 卢龙县| 英山县| 治县。| 玛纳斯县| 东乡族自治县| 密山市| 灵石县| 贵南县| 临漳县| 高要市| 蓬安县| 永登县|