美文网首页
JS DOM BOM知识回顾

JS DOM BOM知识回顾

作者: Yokiijay | 来源:发表于2019-05-23 11:07 被阅读0次

window.location.href = 'https://baidu.com' 页面跳转
const page = window.open('https://baidu.com') 新窗口页面跳转
page.close() 关闭新打开的窗口

滚动条

window.pageYOffset 获取滚动条已滚动的距离
window.pageXOffset
window.scrollY 也是获取滚动距离
window.scrollX
window.scroll( x, y ) 设置滚动距离
window.scrollTo( x, y ) 同上,推荐使用这个
window.scrollBy( x, y ) 每次滚动的距离

平滑滚动距离,有兼容性问题

window.scrollTo( {
  left: 0,
  top:  document.body.offsetHeight,
  behavior: 'smooth'
} )

每次滚动一屏实例 :

function rollOnce(){
  window.scrollTo({
    left: 0,
    top: window.scrollY + window.innerHeight,
    behavior: 'smooth'
  })
}

window.scrollBy( 0, window.innerHeight )

offset家族

elem.offsetLeft 获取元素到有定位的父级的距离
elem.offsetTop

elem.offsetWidth 获取元素包括padding width border在内的宽度
elem.offsetHeight

client家族

elem.clientLeft 获取元素左边框距离(就是border-left的宽啦)
elem.clientTop
elem.clientWidth 获取元素可见区域的宽 width padding 不包括border
elem.clientHeight

scroll家族

elem.scrollWidth 获取元素能够滚动的宽(真实宽度) width padding 不包括border
elem.scrollHeight

client和scroll区别就是client不包含内容超出的宽高,而scroll包含因为scroll就是真实的宽高

鼠标位置

ev.pageX 鼠标相对于整个页面左上角的位置,包括滚动
ev.clientX 鼠标相对于浏览器窗口左上角的位置,不包括滚动
ev.screenX 相对于显示器屏幕
ev.offsetX 相对于事件对象的定位父级的位置


DOM操作——怎样添加、移除、移动、复制、创建和查找节点。

(1)创建新节点

  createDocumentFragment()    //创建一个DOM片段
  createElement()   //创建一个具体的元素
  createTextNode()   //创建一个文本节点

(2)添加、移除、替换、插入

  appendChild()
  removeChild()
  replaceChild()
  insertBefore()

(3)查找

  getElementsByTagName()    //通过标签名称
  getElementsByName()    //通过元素的Name属性的值
  getElementById()    //通过元素Id,唯一性

Video DOM操作

(1)video元素.requestFullScreen() 全屏显示

(2)document.webkitExitFullScreen() 退出全屏显示

(3)video元素.onfullscreenchange = function (){} 全屏切换事件

(3)document.fullScreenElement 返回null则非全屏,全屏则返回全屏元素

toggleFullScreen 兼容函数

const _toggleFullScreen = function _toggleFullScreen() {
    if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement) {
        if (document.cancelFullScreen) {
            document.cancelFullScreen();
        } else {
            if (document.mozCancelFullScreen) {
                document.mozCancelFullScreen();
            } else {
                if (document.webkitCancelFullScreen) {
                    document.webkitCancelFullScreen();
                }
            }
        }
    } else {
        const _element = document.documentElement;
        if (_element.requestFullscreen) {
            _element.requestFullscreen();
        } else {
            if (_element.mozRequestFullScreen) {
                _element.mozRequestFullScreen();
            } else {
                if (_element.webkitRequestFullscreen) {
                    _element.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
                }
            }
        }
    }
};

safari for mac 尤其例外!!
video元素.webkitSetPresentationMode("fullscreen") 全屏播放
video元素.webkitSetPresentationMode("picture-in-picture") 画中画播放

相关文章

  • JS DOM BOM知识回顾

    window.location.href = 'https://baidu.com' 页面跳转const page...

  • 原生JS-09

    • BOM• JS分为三个部分:ECMASCRIPT、BOM、DOM• ECMASCRIPT:定义js...

  • DOM

    DOM JS的组成 ECMAScript js的基础语法 DOM 文档对象模型 BOM ...

  • javascript - 组成

    ECMAScript + DOM + BOM: 这里面所谓的方法和接口,的区别有哪些? js包含bom.dom,在...

  • 前端发展历史

    1.js操作html 利用原生的javascript (js包括ECMAscript BOM DOM)的DOM操作...

  • DOM、BOM、事件知识总结

    DOM、BOM、事件知识总结 DOM相关知识 DOM(Document Object Model)文档对象模型 如...

  • Dom

    JS的组成 ECMAScript js的基础语法 DOM 文档对象模型 BOM ...

  • DOM

    JS的组成 ECMAScript js的基础语法 DOM 文档对象模型 BOM ...

  • js学习内容总结(2)

    1.语言基础2.严格模式3.js组成(ECMAScript DOM BOM)4.各种(DOM BOM)例子5.组件...

  • 1 - 获取元素的选择器API

    英语单词 advanced 高级 js组成 DOM BOM ECMAScript DOM: 操作HTML, CSS...

网友评论

      本文标题:JS DOM BOM知识回顾

      本文链接:https://www.haomeiwen.com/subject/brbmzqtx.html