DOM

作者: 游_弋 | 来源:发表于2019-10-30 13:30 被阅读0次

    $$('*').forEach(a=>{a.style.outline='1px solid red'}) // 控制台输入,查看布局小技巧

    obg.hasOwnProperty('name')  // true来自实例  false来自原型

    btn.addEventListener('click',  function aa(){},  false) // 处理事件名, 事件处理函数, 布尔值, true为捕获阶段调用事件函数, false为冒泡阶段调用事件处理函数

    btn.removeEventListener('click',  function aa(){},  false)  // 移除事件

    解决事件冒泡

    bubbles  // 表明事件是否冒泡  返回布尔值

    event.stopPropagation()  // 立即停止在DOM事件中的传播,即取消进一步的事件捕获冒泡,前提bubble为true

    IE中解决 event.cancelBubble = true  // 解决事件冒泡

    var evt = evt || window.event; //获取event对象 if (evt.preventDefault) { evt.preventDefault(); //非IE浏览器   } else { evt.returnValue = false; //在早期的IE版本中  }event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true); //阻止事件冒泡

    阻止默认事件

    cancelable // 表明是否可以取消时间默认行为  返回 布尔值

    event.preventDefault()  // 阻止事件的默认行为,前提cancelable为true

    IE中解决 event.returnVale= false  // 解决默认事件  

    DOM

    window.  onresize = function(){}   //浏览器改变大小触发

    document.documentElement.scrollTop ||  scrollLeft  //滚动条距离顶部 || 左侧距离

    window.  onclick = function(event){ event.pageX + event.pageY }  //算上滚动条坐标位置

    window.  onclick = function(event){ event.clientX + event.clientY }  //客户区(可视区)坐标位置

    window.  onclick = function(event){ event.screenX + event.screenY }  //相对整个屏幕坐标位置

    var p = document.createElement("p");  //创建元素                                                 

    element.insertAdjacentHTML(position,text);

    'beforebegin'  元素自身前面

    'afterbegin'  插入元素内部的第一个字节点之前

    'beforeend'  插入元素内部的最后一个子节点之后

    'afterend'  元素自身的后面

    body.appendChild(p);  //它用于添加新元素到尾部                                                  

     body.insertBefore(p1, p);  //p1添加到了p之前                                                       

     parent.removeChild(child);  // 移除元素

    element.remove();  //直接删除元素

    child.parentNode.removeChild(child);   //删除当前元素

    parent.replaceChild(newChild, child);   //替换元素

    history.back() - 与在浏览器点击后退按钮相同

    history.forward() - 与在浏览器中点击向前按钮相同

    history.go() 这个方法来实现向前,后退,刷新的功能。

    var a = confirm("sometext");   //确认框返回 true, 如果点击 "取消", 确认框返回 false。

    var a = prompt("sometext","defaultvalue"); // 提示框返回值为输入的值。如果用户点击取消,那么返回值为 null。

    弹窗使用(\n) 来设置换行。alert("Hello\nHow are you?"); 

    nodeType == 1 元素节点

    nodeType == 2 属性节点

    nodeType == 3 文本节点

    window.open(winUrl, "titleName " , '' width='300px,height=300px' ")  <==>  打开新窗口

    面向对象编程

    class Father{ constructor(name,age){ this.name = name;this.age = age;  this.init(); } init(){  } };  var son = new Father(); // constructor接收形参

    function Father( name,age ){ this.name = name; this.age = age; }

    原型对象的prototype.constructor  <==>    指向是谁的构造函数   

    ①构造函数有原型对象prototype

    ②构造函数原型对象prototype里面有constructor指向构造函数本身

    ③构造函数可以通过原型对象添加方法

    ④构造函数创建的实例对象有__proto__原型指向 构造函数的原型对象

    类本质其实还是一个函数 我们也可以简单的认为 累就是 构造函数的另外一种写法( 构造函数另一种写法,es5的面向对象语法糖 )

    ①类有原型对象 prototype

    ②类原型对象 prototype 里面有constructor 指向类本身

    ③类可以通过原型对象添加方法


    canvas


    <canvas id="myCanvas" width="200" height="100"></canvas>

    找到 <canvas> 元素:     var c=document.getElementById("myCanvas");

    创建 context 对象:      var ctx=c.getContext("2d");

    相关文章

      网友评论

          本文标题:DOM

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