第七周 JS 学习笔记

作者: 丸子小姐__不懂爱 | 来源:发表于2020-02-28 19:57 被阅读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对象

  • location.search()
    这里封装一个查询字符串参数的方法
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)增强

  • classList 属性
    该属性包含以下几个实用的方法
    add() , contains() , remove() , toggle()
  • 焦点管理
  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;

相关文章

  • 第七周 JS 学习笔记

    这周主要学习了BOM,DOM方面的知识,同样要记忆的东西挺多的呢 一、BOM 1) window对象 获取窗口的位...

  • 第七周到第十三周复习笔记

    第七周到第十三周知识复习笔记 第七周 JS盒子模型client类offset类scroll类 字符串search(...

  • Machine Learning笔记 第08周

    注意,第七周是考试周,我其实把考试的的内容压缩进了第06周的笔记中去,所以第七周没有单独笔记。但是所有课堂内容没有...

  • 2月20笔记

    第七天web前端学习笔记 有道云笔记

  • 第七周

    第七周 这一周主要学习运用js做网页特效 第一天: 1. 节点,网页是有很多的节点组成的 。 元素节点 指的是 ...

  • 2019-02-20

    学习笔记|三招,打败拖延症今天的学习笔记是蔡康永情商课中的第七周答疑课 主播提供了三个步骤来克服拖延症:(1)统筹...

  • js学习笔记

    js学习笔记 语法 后续补充笔记 join()方法var fruits = ["Banana", "Orange"...

  • 第九周 JS 学习笔记

    时间过的好快,下周js的学习就将结束,回顾这周的知识点,并没有太多难懂的地方,主要是讲了一些关于表单以及JSON方...

  • 第五周 JS 学习笔记

    本周的内容比较多也比较难以理解,花了好长时间整理 一、变量,作用域和内存问题 1)基本类型和引用类型的值 给对象添...

  • 【第6周复盘】(10.8--10.14)

    第七周计划学习生活计划(10.15---10.21): 【1】每天听课2小时,完成听课笔记整理 【2】每天百词斩英...

网友评论

    本文标题:第七周 JS 学习笔记

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