DOM面试

作者: 彭奕泽 | 来源:发表于2018-05-05 21:50 被阅读0次

1. DOM事件模型

  1. 冒泡
  2. 捕获
  3. 如果这个元素是被点击元素,那么执行顺序由监听顺序决定

2. 移动端的触摸事件

  1. 相关API
//说明触摸开始
document.body.ontouchstart !== undefined

//触摸开始移动
canvas.ontouchmove = function (ev) {
  var x = ev.touches[0].clientX;  //触摸的x坐标
  var y = ev.touches[0].clientY;
}
ontouchend  //触摸结束
ontouchcancel  //触摸取消,因为有的浏览器不会触发touchend事件
  1. 模拟swipe事件(滑动)
    记录两次touchmove的位置差,若后一次在前一次的右边,说明向右滑了

3. 事件委托

  1. 监听父元素,看被触发的是哪个儿子,就是事件委托,委托父亲监听儿子
  2. 优点是可以监听动态生成的儿子,减少了事件处理程序的数量,整个页面占用的内存空间会更少。
function listen(element,eventType,selector,fn){
  element.addEventListener(eventType,(e)=>{
    let el = e.target
    while(!el.matches(selector)){  //可能点击的是li里的span  
      if(element === el){  //如果点击的是父元素,则跳出监听
        el =null
        break
      }
      el = el.parentNode
    }
    el&&fn.call(el,e,el)
  })
  return element
}

//<ul id="list">
//  <li></li>
//  ...
//</ul>
//let list=document.querySelector('#list')
//listen(list,'click','li',()=>{})

相关文章

  • DOM面试

    1. DOM事件模型 冒泡 捕获 如果这个元素是被点击元素,那么执行顺序由监听顺序决定 2. 移动端的触摸事件 相...

  • Web前端JQuery面试题(二)

    Web前端JQuery面试题(二) 1.请写出jquery的语法? 2.请问什么是DOM对象? DOM对象,DOM...

  • 前端面试知识点整理

    面试1:CSS布局面试2:CSS盒模型面试3:flex弹性盒布局面试4:DOM面试5:原型链面试6:面向对象面试7...

  • iOS面试题:XML数据解析方式各有什么不同,JSON解析有哪些

    原文:iOS面试题大全 XML数据解析的两种解析方式:DOM解析和SAX解析; DOM解析必须完成DOM树的构造,...

  • 面试4:DOM

    课程思维导图 Q:介绍DOM事件级别? 注:DOM1没注册跟事件相关的东西 Q:请封装事件监听和解绑的兼容写法? ...

  • css加载会造成阻塞吗?

    之前面试今日头条的时候,今日头条面试官问我,js执行会阻塞DOM树的解析和渲染,那么css加载会阻塞DOM树的解析...

  • css加载会造成阻塞吗?

    之前面试今日头条的时候,今日头条面试官问我,js执行会阻塞DOM树的解析和渲染,那么css加载会阻塞DOM树的解析...

  • DOM DIFF 原理解析

    DOM DIFF 原理解析 背景: 现在面试极其热门的一个问题, 希望通过这个分享, 能让大家对DOM DIFF原...

  • Javascript 基础 And 进阶面试

    知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一): 面试...

  • JS面试题(进阶)——原型链、this指向、闭包

    知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一): 面试...

网友评论

      本文标题:DOM面试

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