DOM

一、节点
  1. 节点类型

             元素

             文本

             属性(getAttribute、 setAttribute)

 

<div id="app" name="main">Hello!</div>

<script>
  let node = document.querySelector('#app');
  console.log(node.firstChild.nodeValue)   // Hello!
  console.log(node.getAttribute('id'))     // app
  console.log(node.getAttribute('name'))   // main
</script>

 

 

    2.获取节点方法

             querySelector()         // 返回一个对象

             querySelectorAll()     //  返回一个数组对象

 

             getElementById()      // 获取id的

             getElementsByTagName()  

             getElementsByName()

 

    3.

  • 子节点

    childNodes[0]  firstChild  lastChild

  • 父节点

    parentNode  nextSibling  previousSibling

  • 节点信息

    nodeName  nodeType(132)  nodeValue

 

 

 

 

              

 

 

 

 

二、事件

  onload
  onscroll

  onkeyup
  onkeydown

  onmouseenter(鼠标指针移动到元素上时触发)
  onmouseout(鼠标指针移动到元素外时触发)

onclick
  onmousedown(点击鼠标时触发)
  onmousemove
  onmouseup(松开鼠标时触发)

  mouseover和mouseout在父元素和其子元素都可以触发,当鼠标穿过一个元素时,触发次数得依子元素数量而言。

  mouseenter和mouseleave只在父元素触发,当鼠标穿过一个元素时,只会触发一次。

  mouseover和mouseout比mouseenter和mouseleave先触发

  touchstart,touchmove,touchend

实现图片轮播
  https://blog.csdn.net/m0_37568521/article/details/77836756

 


 

 

 

 

screen:屏幕。这一类取到的是关于屏幕的宽度和距离,与浏览器无关,应该是获取window对象的属性。
client:使用区、客户区。指的是客户区,当然是指浏览器区域。
offset:偏移。指的是目标甲相对目标乙的距离。
scroll:卷轴、卷动。指的是包含滚动条的的属性。
inner:内部。指的是内部部分,不含滚动条。
avail:可用的。可用区域,不含滚动条,易与inner混淆。
window.innerWidth/innerHeight:浏览器可见区域的内宽度、高度(不含浏览器的边框,但包含滚动条)。兼容:ie9/10、chrome、firefox。
window.screen.availWidth/availHeight:屏幕的可用宽度、高度(通常与屏幕的宽度、高度一致)。兼容性:ie6/7/8/9/10、chrome、firefox。

 

鼠标移动

document.onclick = function (ev) {
       console.log('相对于屏幕:菜单栏+可视区')
       console.log(getScreenMousePos(ev))
       console.log('相对于可视区窗口')
       console.log(getFaceMousePosx(ev))
       console.log('相对于文档: 相对于可视区窗口 + 滚动条区')
       console.log(getDocMousePoss(ev))
   }
   function getScreenMousePos(event) {
       var e = event || window.event;
       return {'x':e.screenX,'y':e.screenY}
   }
   function getFaceMousePosx(event) {
       var e = event || window.event;
       return {'x':e.clientX,'y':e.clientY}
   }
   function getDocMousePoss(event) {
      var e = event || window.event;
      var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
      var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
      var x = e.pageX || e.clientX + scrollX;
      var y = e.pageY || e.clientY + scrollY;
      return { 'x': x, 'y': y };
   }

 

键盘按钮

document.onkeyup = function () {
    if(event.keyCode) {
        console.log(event.keyCode)
    }
}

 

document.body        返回html dom中的body节点 即<body>

document.documentElement  返回html dom中的root 节点 即<html> 

 

 

 

获取鼠标位置

http://www.cnblogs.com/dolphinX/archive/2012/10/09/2717119.html

https://www.cnblogs.com/mrdooo/p/6633688.html

 

 

 

三、new URLSearchParams:接收一个 URL 的查询字符串

const searchParams = new URLSearchParams(window.location.search);

searchParams.get('name')

 

JS中的位置和宽度:clientWidth、offsetWidth、scrollWidth等区别

posted @ 2018-05-06 17:50  Yo!  阅读(232)  评论(0编辑  收藏  举报