一只迎风乱飞的前端菜鸟

第七周 JS 学习笔记

2020-02-28  本文已影响0人  丸子小姐__不懂爱

这周主要学习了BOM,DOM方面的知识,同样要记忆的东西挺多的呢

一、BOM

1) window对象

 function getWindowPos(){
      return {
          leftPos: (typeof window.screenLeft == 'number') ?
              window.screenLeft : window.screenX,
          topPos: (typeof window.screenTop == 'number') ?
              window.screenTop : window.screenY
      }
  }
 function getViewPortSize(){
      var pageWidth = window.innerWidth;
      var pageHeight = window.innerHeight;

      if(typeof pageWidth != 'number'){
          if(document.compatMode == 'CSS1Compat'){
              // 标准模式下
              pageWidth = document.documentElement.clientWidth;
              pageHeight = document.documentElement.clientHeight;
          }else {
              // 混杂模式下
              pageWidth = document.body.clientWidth;
              pageHeight = document.body.clientHeight;
          }
      }
      return {
          pageWidth: pageWidth,
          pageHeight: pageHeight
      }
  }
  var num =0;
  var max = 10;
  var intervalId = null;
  function incrementNumber (){
      num++;
      if(num === max){ // 当达到最大值时,取消间歇调用
          clearInterval(intervalId);
          console.log('Done')
      }
  }
  intervalId = setInterval(incrementNumber,500)
 var num =0;
  var max =10;
  function incrementNumber(){
      if(num < max){
          setTimeout(incrementNumber,500)
      }else {
          console.log('Done')
      }
  }
  setTimeout(incrementNumber,500)

2)location对象

function getQueryStringArgs(){
      // 去掉查询字符串开头的问号
      var qs = (location.search.length > 0 ? location.search.substring(1) : ''),
          args = {},  // 保存数据的对象
          items = qs.length ? qs.split('&'): [],
          item = null,
          name = null,
          value = null,
          len =  items.length;

      for(var i=0; i< len; i++){
          // 分隔name 和 value
          item = items[i].split('=');
          name = decodeURIComponent(item[0]);
          value = decodeURIComponent(item[1]);
          if(name.length){
              args[name] = value;
          }
      }
      return args;
  }
  1. location.assign() , location.href() 打开新的文档,可返回
  2. location.replace() 用新的文档代替旧的文档,不可返回
  3. location.reload() 刷新页面

3) navigator对象

通过使用console.dir(navigator) 可查看所有的方法以及属性

二、DOM

1)动态插入脚本和样式表

 function loadScript(url){
      var script = document.createElement('script');
      script.type = 'text/javscript';
      script.src = url;
      document.body.appendChild(script)
  }

function loadStyles(url){
      var link = document.createElement('link');
      link.rel =  'stylesheet';
      link.type = 'text/css';
      link.href = url;
      var head = document.getElementsByTagName('head')[0];
      head.appendChild(link)
  }

2)节点操作

  1. parentNode 获取父节点
    2.dhildren 获取子节点
    3.hasChildNodes() 检测节点是否包含子节点
    4.appendChild() 在节点末尾插入
    5.insertBefore() 在节点之前插入
oDiv.insertBefore(oInner, oDiv.firstChild)
  1. replaceChild() 替换节点
oDiv.replaceChild(oInner,oDiv.firstChild)
  1. removeChild() 删除子节点
  2. cloneNode() 复制节点
  document.getElementById(id)  //通过id 查找元素
  document.getElementsByTagName(tagName)   //通过标签名查找元素, 返回的是一个nodeList集合
  document.getElementsByName(name)  //通过name 属性名来获取
  document.getElementsByClassName('box') // 通过类名来获取
  document.querySelector('body')
  document.querySelector('.box')
  console.log(document.anchors)   // 获取所有带name属性的a元素
  console.log(document.forms)   // 获取所有form表单元素
  console.log(document.images)  // 获取所有的img
  console.log(document.links)   //获取所有带href 的a 元素
  console.log(oDiv.id)
  console.log(oDiv.className)
  console.log(oDiv.title)
  console.log(oDiv.lang)
  console.log(oDiv.dir)
  1. getAttribute 获取
  2. setAttribute 设置
  3. removeAttribute 删除
 document.createElement('div');
 document.createTextNode('hello world');

3)增强

  1. focus() 元素获取焦点
  2. document.activeElement 获取当前取得焦点的元素
  3. document.hasFocus() 检测文档是否获取了焦点
  if(document.readyState == 'loading'){
      console.log('loading')
  }
  window.onload = function(){
      if(document.readyState == 'complete'){
          console.log('complete')
      }
  }
element.dataset.single
  1. innerHTML
  2. innerText
  3. outerHTML
  1. element.style 获取样式
  2. element.style.cssText 设置多个样式属性
  3. 获取伪元素样式
document.defaultView.getComputedStyle(Element,':after')
  1. 滚动条长度
  console.log(document.documentElement.scrollHeight)
  console.log(document.documentElement.scrollLeft)
  1. 滚动距离
  var scrollT=document.documentElement.scrollTop;
  var scrollL=document.documentElement.scrollLeft;
上一篇 下一篇

猜你喜欢

热点阅读