原生js大总结七

061、如何获取父级节点、上一个子级节点、下一个子级节点
 
 nextElementSibling  后一个兄弟元素  (如果没有是null)
 
 previousElementSibling  前一个兄弟元素  (如果没有就是null)
 
 parentNode 获取当前节点的父节点
 
062、元素节点的创建、添加、删除、替换、克隆
 
1、创建:document.createElement('元素名');
  
2、添加:appendChild()====>插入到最后       insertBefore()====>插入到最前面    
  用法:
          function append(obj,newEle){
              var achildren = obj.children;
              if(achildren.length>=1){
                return  obj.insertBefore(newEle,achildren[0])
               } else{
                return   obj.appendChild(newEle)
               }
          }
3、删除:box.removeChild(node) 从元素中移除某个子元素
  用法:  先找到父级节点然后在去删除子级节点
 
4、替换:box.replaceChild(子元素,父元素)
 
  用法:
      父元素.replaceChild(被替换成的元素,替换元素)
 
5、克隆:clone()
     元素.clone();
     如果里面传true的话会吧整个标签的所有节点都克隆,如果没有加true,只会克隆当前元素
 
 
063、浅谈关于文档碎片的理解
 
1、js操作dom时发生了什么?
     
   每次对dom的操作都会触发"重排",这严重影响到能耗,一般通常采取的做法是尽可能的减少dom操作来减少"重排"
 
2、什么是文档碎片?
  
    document.createDocumentFragment()
    一个容器,用于暂时存放创建的dom元素
    (其实这个跟咱们上课说那个先让到一个元素中,然后最后appendchild一样)
     
3、文档碎片有什么用?
  
   将需要添加的大量元素  先添加到文档碎片  中,再将文档碎片添加到需要插入的位置,大大减少dom操作,提高性能
 
064什么是回流和重绘
 
当渲染树中的一部分或者全部因为元素的尺寸、布局、隐藏等改变而需要重新构建的时候,这时候就会发生回流。
 
每个页面都至少发生一次回流,也就是页面第一次加载的时候。
 
在回流的时候,浏览器会使渲染树中受到影响的元素部分失效,并重新绘制这个部分的渲染树,完成回流以后,浏览器会重新绘制受到影响的部分元素到屏幕中,这个过程就是重绘
 
 
什么时候会发生回流?
     1、添加或者删除可见的DOM元素的时候
 
     2、元素的位置发生改变
 
     3、元素尺寸改变
 
     4、内容改变
 
     5、页面第一次渲染的时候
 
065、关于offsetX、offsetY、clientX、clientY、pageX、pageY、screenX、screenY的区别
 
 
offsetX、offsetY:
     鼠标相对于事件源元素(srcElement)的X,Y坐标
 
clientX、clientY:
     鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。
 
pageX、pagey:
     类似于event.clientX、event.clientY,但它们使用的是文档坐标而非窗口坐标。这2个属性不是标准属性,但得到了广泛支持。IE事件中没有这2个属性
 
screenX、screenY:
     鼠标相对于用户显示器屏幕左上角的X,Y坐标。
 
 
 
066、如何在当前视窗的可见范围看见当前元素
 
scrollIntoView()
 
067、关于onkeydown和onkeypress的区别以及如何获取按下键盘的键盘码?
 
onkeydown:
            1、所有的英文字符都是大写
            2、功能键也会被识别
onkeypress
            1、所有英文字符大小写都支持
            2、所有功能键都不会被识别
            3、组合键ctrl+回车的code值是10
 
 
e.keyCode || e.which
 
068、什么是事件流? 什么是事件冒泡? 什么是事件捕获?
 
什么是事件流?
 
     当一个HTML元素产生一个事件时,该事件会在元素节点与根节点之间的路径传播,路径所经过的节点都会收到该事件,这个传播的过程叫做DOM事件流
 
元素触发事件时,事件的传播过程称为事件流,过程分为捕获和冒泡两种
 
冒泡事件:微软提出的   事件由子元素传递到父元素的过程,叫做冒泡
 
捕获事件:网景提出的   事件由父元素到子元素传递的过程,叫做事件捕获
 
069、什么是浏览器默认行为?如何组织浏览器默认行为?
 
例如:右键菜单  点击超链接跳转  图片拖拽
 
组织默认行为
 
     return false  
    
     preventDefault是一个方法:e.preventDefault();
    
     returnValue的值是一个常量:e.returnValue = false;
 
070、如何组织右键菜单?
 
document.oncontextmenu = function(e){
 
     e.preventDefault()
    
}
原文地址:https://www.cnblogs.com/J--L/p/10096607.html