javascript定時(shí)器+DOM查看視口以及元素尺寸和位置

javascript

js定時(shí)器

  • setInterval( 函數(shù), 時(shí)間);可識(shí)別最小幀數(shù)14 ,每xx時(shí)間執(zhí)行一次這個(gè)函數(shù), 循環(huán)執(zhí)行多次
  • setTimeout( 函數(shù) , 時(shí)間);xx時(shí)間之后執(zhí)行這個(gè)函數(shù)
  • clearInterval( );
  • clearTimeout( );
  • 全局對(duì)象window上的方法, 內(nèi)部函數(shù)this指向window

DOM基本操作

查看滾動(dòng)條的滾動(dòng)距離

  • window.pageXOffset/ pageYOffset
    • IE8及IE8以下不兼容
  • document.body/ documentElement .scrollLeft/scrollTop
    • 兼容性比較昏亂, 用時(shí)取兩個(gè)值相加, 因?yàn)椴豢赡艽嬖趦蓚€(gè)同時(shí)有值
  • 封裝兼容方法, 求滾動(dòng)輪滾動(dòng)距離getScrollOffset()
function getScrollOffset() {
    if(window.pageXOffset){
        return{
            x: window.pageXOffset,
            y: window.pageYOffset
        }
    }else{
        return{
            x: document.body.scrollLeft + document.documentElement.scrollLeft,
            y: document.body.scrollTop + document.documentElement.scrollTop
        }
    }
}

查看視口的尺寸

  • window.innerWidth/innerHeight
    • IE8及IE8以下不兼容
  • document.documentElement.clientWidth/clientHeight
    • 標(biāo)準(zhǔn)模式下, 任意瀏覽器都兼容
  • document.body.clientWidth/clientHeight
    • 適用于怪異模式下的瀏覽器
  • 封裝方法, 返回瀏覽器視口尺寸getViewportOffset( )
function getViewportOffset() {
    if(window.innerWidth && 0){
        return{
            w: window.innerWidth,
            h: window.innerHeight
        }
    }else if(document.compatMode === "CSS1Compat"){
        return{
            w:  document.documentElement.clientWidth,
            h:  document.documentElement.clientHeight
        }
    }else{
        return {
            w: document.body.clientWidth,
            h: document.body.clientHeight
        }
    }
}

讓滾動(dòng)條滾動(dòng)

  • window上有三個(gè)方法
  • scroll( ), scrollTo( ), scrollBy( );
  • 三個(gè)方法功能類似, 用法都是將x, y坐標(biāo)傳入. 即實(shí)現(xiàn)讓滾動(dòng)條滾動(dòng)到當(dāng)前位置
  • 區(qū)別: scrollBy( )會(huì)在之前的數(shù)據(jù)基礎(chǔ)上做累加

查看元素的幾何尺寸

  • 標(biāo)簽.getBoundingClientRect( );
  • 兼容性很好
  • 該方法返回一個(gè)對(duì)象, 對(duì)象里面有l(wèi)eft, top, right, bottom等屬性. left和top代表該元素左上角的x和y坐標(biāo), right和bottom代表元素右下角的x和y坐標(biāo)
  • height和width屬性老版本IE并未實(shí)現(xiàn)
  • 返回的結(jié)果并不是"實(shí)時(shí)的"

查看元素的尺寸

  • dom.offsetWidth, dom.offsetHeight

查看元素的位置

  • dom.offsetLeft, dom.offsetTop
  • 對(duì)于無定位父級(jí)的元素, 返回相對(duì)于文檔的坐標(biāo). 對(duì)于有定位父級(jí)的元素, 返回相對(duì)于最近的有定位的父級(jí)的坐標(biāo).
  • dom.offsetParent
  • 返回最近的有定位的父級(jí), 如無, 返回body, body.offsetParent返回null
  • eg: 求元素相對(duì)于文檔的坐標(biāo)getElementPosition( )
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在一些復(fù)雜的頁面中經(jīng)常會(huì)用JavaScript處理一些DOM元素的動(dòng)態(tài)效果,這種時(shí)候我們經(jīng)常會(huì)用到一些元素位置和尺...
    深沉的簡單閱讀 969評(píng)論 0 0
  • 一、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會(huì)使用HT...
    凜0_0閱讀 2,913評(píng)論 0 8
  • 在一些復(fù)雜的頁面中經(jīng)常會(huì)用JavaScript處理一些DOM元素的動(dòng)態(tài)效果,這種時(shí)候我們經(jīng)常會(huì)用到一些元素位置和尺...
    古德毛寧_39de閱讀 313評(píng)論 0 0
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,114評(píng)論 1 92
  • 縮放背景圖片 使用多個(gè)背景圖片 ?? 卷軸效果 免費(fèi)的圖片 照片https://morguefile.com/www...
    Candy374閱讀 220評(píng)論 0 0

友情鏈接更多精彩內(nèi)容