前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DOM事件基本概念大总结(前端必备)

DOM事件基本概念大总结(前端必备)

作者头像
努力的Greatiga
发布于 2022-07-25 02:17:36
发布于 2022-07-25 02:17:36
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

事件流

这一概念源自于对事件触发对象的思考。例如常见的点击事件,鼠标移动事件。这些事件发生之时,往往不只是点击或者移动到某一特定元素上。

比如点击某一个按钮,而它是由上一层的父标签,或许在上一层还有父标签甚至是整个页面。因此点击一个元素可以看成是同时点击了父标签或者整个页面。那么此时事件应该怎么响应到指定标签呢?

事件冒泡

即事件从指定元素开始传播到最外层的元素,并且该事件不仅会在指定元素上发生,还会在传播过过程中的每一个元素上发生。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
  <body>
    <div>
      <button>click</button>
    </div>
  </body>
</html>
  • 事件冒泡: button -> div -> body -> html -> document

如上,再点击click之后,事件从 button 开始传播至 html ,再到 documet。这一个过程也称为事件冒泡

事件捕获

与事件冒泡刚好相反,事件从最外层的 documet 开始一直往里面,直到点击的元素才停止

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
  <body>
    <div>
      <button>click</button>
    </div>
  </body>
</html>
  • 事件冒泡: documet -> html -> body -> div -> button

如上,再点击click之后,事件从 documet 开始传播至 button。这一个过程也称为事件捕获

DOM 事件流

在上述两种事件确定的方式下,规定了事件处理的三个阶段。事件捕获阶段、处于目标阶段、事件冒泡阶段。同时 DOM明确规定

  • 事件捕获阶段不会处理事件
  • 处于目标阶段属于冒泡阶段的一部分,并且会触发事件。
  • 然而实际上,几乎所有主流浏览器都支持在事件捕获阶段触发事件,它们并没有遵守规定

事件处理程序

主要是指 DOM 如何处理各种 HTML 上的程序。

对于所有浏览器来说,有两种标准用来操作事件的添加与删除,一种是 DOM2 事件处理程序,一种是 IE 事件处理程序。

DOM2 级事件处理

直接调用该 dom 对象的事件属性,并将相应的执行函数赋予它

addEventListener() 和 dom.on(事件) = 函数

利用 dom 对象的事件属性直接赋予一个执行函数;利用 addEventListener 添加,并且该方法可以添加多个

addEventListener() 有三个参数,参数 1 为事件、参数 2 为执行函数。参数 3 为一个布尔值,false 代表在冒泡阶段执行,true 表示在捕获阶段执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var doc = document.querySelector('div');
doc.onclick = function() {
  alert(1);
}
doc.addEventListener('click', function() {
  alert(2);
}, false)
doc.addEventListener('click', function() {
  alert(3);
}, false)

removeEventListener() 和 dom.on(事件) = null

利用直接设置事件属性为 null 来移出执行函数。利用 removeEventListener() 来移出,但前提是必须给定函数名

removeEventListener() 有三个参数,参数 1 为事件、参数 2 为执行函数。参数 3 为一个布尔值,false 代表在冒泡阶段执行,true 表示在捕获阶段执行

如下使用匿名函数定义的执行函数无法删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var doc = document.querySelector('div');
doc.addEventListener('click', function() {
  alert(2);
}, false)//通过匿名函数定义的
doc.removeEventListener('click',function() {
  alert(2);
}, false);//无效
doc.onclick = null;//有效
function Click() {
  alert(2);
}
doc.addEventListener('click', Click, false)//
doc.removeEventListener('click', Click, false);//有效

IE 级

attachEvent()

和 DOM 2 级一样用来添加事件,只有两个参数 "事件" 和 "处理函数",不能设置冒泡或者捕获。因为 IE8 之前那只支持冒泡,所以就只能冒泡

同样可以添加多个执行函数

detachEvent()

和 DOM2 级一样,要删除必须给定函数名作为参数。无法删除通过匿名定义添加的执行函数。

封装跨浏览器的事件处理函数

因为 IE 独树一帜,又因为 IE 属于 windows 用户标配;所以兼容需要考虑。否则代码在 IE 上可能出问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const EventHandle = {
  addEvent: (element, type, fn) => {
    if(element.addEventListener) {
      element.addEventListener(type, fn, false);
    } else if(element.attachEvent) {
      element.attachEvent(type, fn);
    } else {
      element[`on${type}`] = fn;
    }
  },
  removeEvent: (element, type, fn) => {
    if(element.removeEventListener) {
      element.removeEventListener(type, fn, false);
    } else if(element.detachEvent) {
      element.detachEvent(type, fn);
    } else {
      element[`on${type}`] = null;
    }
  },
}

let doc = document.querySelector('div');
function T() {
  alert(13);
}
EventHandle.addEvent(doc, 'click', T);
EventHandle.removeEvent(doc, 'click', T);

事件对象

事件对象作为事件发生给予 js 获得相关信息的机会非常重要。程序要根据这些信息作出相应的响应。

DOM 事件对象

必定会传一个 event 对象给执行函数。可以直接作为参数使用。但有两种情况需要注意

  • 通过直接在 html 元素上添加的事件,必须写明参数为 event,响应执行函数也要写明该参数
  • 通过 addEventListener() 添加的事件,只需要在执行函数上写明参数就行。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div onclick="Test(event)"></div>
<script>
  function Test(event) {
    console.log(event.type);
  }
</script>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let doc = document.querySelector('header');
doc.addEventListener('click', function(event) {
  console.log(event.target.tagName,event.type);
}, false);

常用属性

  • bubbles Boolean 表明事件能否冒泡
  • cancelable Boolean 是否能取消事件的默认行为
  • currentTarget Element 当前事件处理程序正在处理的元素
  • defaultPrevented Boolean 为 true 表示调用了 preventDefault()
  • eventPhase Integer 1 为捕获阶段 - 2 - 为处于目标阶段 - 3 为冒泡阶段
  • preventDefault() 取消事件的默认行为,前提是 cancleable 为 true
  • target 事件的目标,就是触发事件的对象
  • type 事件类型

target 与 currentTarget

这里的 currentTarget 是指发生事件时,该事件所绑定的那个元素

而 target 从始至终就都是你点击或者移动或者其他触发事件行为的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div onclick="father(event)">
  <button>1</button>
  <button onclick="son(event)">2</button>
</div>
<script>
  function father(event) {
    console.log(event.target, event.currentTarget);
  }
  function son(event) {
    console.log(event.target, event.currentTarget);
  }
</script>

看上述这个例子。

  • 情况一:点击 button 2;按照事件冒泡那么两个执行函数都会触发
    • target: 两个函数的输出值都为 button 2;因为点击的是该元素
    • currentTarge: son() 输出的为 button 1;father() 输出为 div
  • 情况二:点击 button 1;只会触发 father()
    • target: 输出为 button 1;因为就是点击在 button 1 上
    • currentTarget:输出为 div;因为该执行函数就绑定在该元素上
  • 情况三:点击 div;只触发 father()
  • target 和 currentTarget 都为 div

另外,执行函数中的 this 值指向 currentTarget;但是有个前提,this值要等于 currentTarget,那么必须是在target上或者事件是通过 sddEventListener 添加的。否则通过html元素直接绑定的方式this指向了 window 对象

eventPhase 和 stopPropagation

eventPhase 可以知道事件执行时处于哪个阶段

stopPropagation 可以阻值事件继续冒泡传播。我们知道一般事件是在处于目标阶段到冒泡阶段执行的。倘若不阻止冒泡,那么点击一个小按钮,一直回溯到 document。那么整个页面许多地方的点击事件都会触发,很显然我们不想这样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div onclick="father(event)">
  <button>1</button>
  <button onclick="son(event)">2</button>
</div>
<script>
  function father(event) {
    console.log(event.target, event.currentTarget);
  }
  function son(event) {
    console.log(event.target, event.currentTarget, event.eventPhase);//button button 2
    event.stopPropagation();//阻止继续冒泡。这样就不会触发 father 了
  }
</script>

当然该方法同样可以阻止捕获,不过前提是绑定事件时指定他在捕获阶段触发。这样一来就不会继续捕获下去了

IE 事件对象

为什么不能统一呢,非要学两套

IE 事件对象与 DOM 级有一定差异

常用属性

  • cancelable 默认值为 false,true 为取消冒泡。与 DOM 中 stopPropagation 相似
  • returnValue 默认为 true,false 为取消事件默认行为,与 DOM 中 preventDefalut() 相似
  • srcElement 事件目标,与 DOM target 相似
  • type 事件类型

event 对象的获取

IE 中的 event 对象时作为 window 对象的一部分存在,可以通过 window.event 来获取

  • 通过文档对象赋值的方法,必须要指定 window.event ,直接使用 event 会报错 undefined
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var doc = document.querySelector('#id');
doc.onclick = function (event) {
  console.log(event.type);//event undefined
  var event = window.event;
  console.log(event.type);//click
}
  • 通过 attachEvent() 添加的可以像 DOM 那样作为参数直接使用
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doc.attachEvent('click', function(event) {
  console.log(event.type);//click
});

总结

执行函数中关于事件元素的信息都可以通过 event 获取,虽然 this 值有时也会等于 event 的部分属性。但是建议用 event,因为 this 的指向取决于外部执行环境,不能保证得到想要的值。

另外,IE 要没了。取而代之的是微软新浏览器 Edge ,这个浏览器好像已经统一了 DOM级规定的事件处理。原来 IE 的那些特有事件处理已经没有了

事件Type

常见的事件类型

UI事件

界面发生的事件

load 事件

当页面完全加载,包括所有图像、js 文件、产生式文件等外部资源。之后就会触发该事件。添加事件的方法?建议使用之前写的跨浏览器事件处理方法。当然也可以通过获取 dom 对象,并对其属性赋值,也可以直接在 html 元素上绑定。但是这两个方法下的 event 对象的使用有区别,特别是在 IE 浏览器上

  • 在 window对象下触发整个页面的加载;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.addEventListener('load', function(event) {
  console.log(event.target, '加载完毕');
})
  • 用来加载图片

绑定事件后,设置 img 的 src 即刻加载。可以用来做图片的预加载。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let image = new Image();
image.addEventListener('load', function(event) {
  console.log(event.target, '图像加载完毕');
})
window.addEventListener('load', function(event) {
  console.log(event.target, '页面加载完毕,开始加载图像');
  image.src = `https://timgsa.baidu.com/jz.jpg`;
})
  • 用来加载 js 外部文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let js = document.createElement('script');
js.addEventListener('load', function(event) {
  console.log(event.target, 'js加载完毕');
})
window.addEventListener('load', function(event) {
  console.log(event.target, '页面加载完毕,开始加载js');
  js.src = `./xxx.js`;
})

unload 事件

与 load 事件相反,一般页面切换后触发,可用来强制的引用清除,防止内存泄漏

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.addEventListener('unload', function(event) {
  console.log(event.target, '跳转了');
})

resize 事件

当页面大小发生改变时触发,可以用此来获取一些窗口属性,用来做响应式开发。但是大小改变检测很灵敏,所以需要做防抖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.addEventListener('resize', function(event) {
  console.log('大小改变');
  console.log(window.innerWidth, window.innerHeight);
})

scroll 事件

scrollLeft 和 scrollTop

这是存在于 document 上的两个属性,分别代表滚动条已经滚动的高度和宽度。他们与 clientWidth 、clienHeight一样都是页面视口的属性,并非整个浏览器创口属性。

该事件是在 window 对象上发生的,与 scrollTop,scrollLeft 有关。监听该事件可以用来做导航栏的变化,同样要做防抖,否则容易卡顿

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.addEventListener('scroll', function(event) {
  console.log('滚动');
  console.log(document.documentElement.scrollTop, document.documentElement.scrollLeft);
})

焦点事件

焦点一般只鼠标的焦点,虽然可以检测鼠标事件来监控,但是焦点可以通过键盘移动所以有专门的事件监控。焦点事件标准不一,但是 DOM3 统一了一个标准并且规定了它的发生顺序

当一个元素移动到另一个元素会依次触发以下事件;一般 blur 与 focus 常见

  • focusout 在失去焦点元素上触发,会冒泡
  • focusin 在获取焦点元素上触发,会冒泡
  • blur 在失去元素上触发,不会冒泡
  • DOMFocusOut 在失去焦点元素上触发,会冒泡; Opera 专有
  • focus 在获取焦点元素上触发,不会冒泡
  • DOMFocusIn 在获取焦点元素上触发,会冒泡; Opera 专有

鼠标与滚轮事件

鼠标点击与移动

主要是点击、双击、光标移入、移出、暗下、放开的操作;

  • mouseenter 首次移入元素内部触发,不冒泡
  • mouseleave ,移出元素触发,不冒泡
  • mousemove 在元素内重复移动触发
  • mouseout 移入另一个元素触发
  • mousedown 按下鼠标触发
  • mouseup 释放鼠标按键触发
  • click 点击,只有按下事件和放开事件发生后才会触发,只是按下不会触发
  • dblclick 双击,当且仅当连续两次 click 时触发

触发顺序:

  • mousedown
  • mouseup
  • click //一次点击
  • mousedown
  • mouseup
  • click //二次点击
  • dblclick //触发双击

一般可以用于轮播图或者自动播放,当鼠标移入将其停止,移出又自动播放

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var doc = document.querySelector('input');
doc.addEventListener('mouseenter', function() {console.log('暂停')} )
doc.addEventListener('mouseout', function() {console.log('开始')} )

滚轮

  • mousewheel

可用于获取该事件发送时鼠标属性,在任何元素上通过鼠标滚动即可触发。可以检测页面滚动是否来自鼠标。该事件冒泡。

触摸屏

上述事件在移动端上又有所不同

  • 并不支持 dblclick ,双击只会放大
  • 轻击不可单击或者没有绑定 click 的元素什么事件也不会发生
  • 在可点击或者绑定 click 的前提下点击会触发 mousemove 。若该事件改变了内容将不会在发生其他事件,否则可以发生 down、up、click 事件
  • mousemove 也会触发 mouseenter 和 mouseout
  • 手指滚动页面时会触发 mousewheel 和 scroll 事件

键盘和文本事件

键盘

  • keydown 敲击任意键时触发,若按住不放则不断触发
  • keypress 敲击字符健时触发,若按住不放则不断触发
  • keyup 释放键盘触发

按下字符键时依次触发 keydown -> keypress -> keyup 按下非字符键时依次触发 keydown -> keyup

另外发生 keydown 和 keyup 时,也可以通过 event 对象获取相应的键值(ASCII码值)。keyCode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let doc = document.querySelector('input');
doc.addEventListener('keyup',function(event) {
  console.log(event.keyCode);
})

textInput 事件

触发条件

  • 必须在可编辑区编辑
  • 输入实际字符的键,不会包括删除、退格键等等

可以通过 event.data 获得键盘实际输入值而非 ASCII 码值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let doc = document.querySelector('input');
doc.addEventListener('textInput',function(event) {
  console.log(event.data);
})

设备事件

设备事件不是值页面内的事件,而是移动设备本身事件,比如翻转、是否走动。目前的草案中有四种类型事件

  • orientationchange ,苹果给 safari 添加的事件用来检测设备从横向观察模式到纵向观察模式。
  • 它的值存在于 window.orientation 中。0 为纵向、90 为向左旋转、-90 为向右旋转
  • MozOrientation ,firefox 未检测设备而引入,依靠 event 的 x,y,z 来确定方向。该事件可能被替代
  • deviceorientation
  • devicemotion

触摸与手势事件

这一类事件是移动设备的事件核心

触摸事件

  • touchstart 手指触摸屏幕触发
  • touchmove 手指在屏幕上连续滑动触发。可以调用 preventDefault() 来阻值滑动
  • touchend 手指离开屏幕
  • touchcancel 系统停止跟踪触发
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
作为头号大敌,三星为何还给苹果代工屏幕和处理器? | 拔刺
--- 拔出你心中最困惑的刺!--- 在这个用过即弃的时代,不要让你的求知欲过期。 今日拔刺: 1、作为头号大敌,三星为何还给苹果代工屏幕和处理器? 2、如何评价OPPO新机find x? 3、比特币
镁客网
2018/06/28
4870
征战高端10余载,OPPO少了昔日的锐气
早在2013年,OPPO就推出了Find系列,这标志着,从那个时候起,OPPO就正式进入高端智能手机市场。
刘旷
2025/04/29
900
探索无镜之境,藏在OPPO Find X背后的思考
6月29日在欧洲发布并引发轰动的OPPO Find X中国发布会在北京召开。第二次发布OPPO除了宣布国行价格外,也系统性地阐述了这款手机背后的思考和打磨它所遇到的挑战。第二次,我的朋友圈被这款手机刷屏,许多国内媒体在见到真机后都有话要说,关于这部手机本身,关于OPPO的创新能力,关于国产手机的创新,关于智能手机的未来,OPPO Find X都带来了太多话题。
罗超频道
2018/07/23
3560
探索无镜之境,藏在OPPO Find X背后的思考
升降摄像头、滑动屏……为实现全面屏,这是越走越偏了?
对于手机来说,近期炒得最火热的技术之一就是“全面屏”了。自从苹果带起了“刘海屏”的潮流,华为、小米、OPPO、vivo等好似都中了“刘海屏”的毒,纷纷开始采用“刘海屏”。然而,大众的需求总是越来越大,全面屏的呼声日渐高涨。
VRPinea
2018/09/28
1.7K0
智能手机的终场战事:小步快跑进入“智慧时代”
OPPO、荣耀、华为、三星等品牌陆续推出新品,经历过2021年的“小阳春”后,几乎所有的主流厂商都在加足马力。但有别于一味在性能、快充、屏幕等方面秀肌肉的做法,越来越多的品牌将焦点集中在了智慧化方面。
Alter聊科技
2023/01/13
3250
让苹果、三星、华为拼抢的可折叠手机,究竟有什么魔力
目前,可折叠手机并没有统一标准,各个手机厂商提供的可折叠技术方案并不一致。所谓的可折叠手机既可以是屏幕可折叠,也可以是元器件可折叠。
镁客网
2018/07/31
5190
让苹果、三星、华为拼抢的可折叠手机,究竟有什么魔力
与苹果的「高端市场」之争,国产手机只能指望「折叠屏」?
2022年半导体大会正式开启,点击图片立刻参与! 抢占市场,需要一个新的思路。 作者 | 来自镁客星球的家衡 4月11日晚间,vivo在自家新品发布会上公布了首款折叠屏产品。 就产品本身而言,这款名为“vivo X Fold”的手机并没有太多颠覆性的创新,但当8999元的起售价公布之后,弹幕还是纷纷刷起来“真香”:一款售价不到1万元的折叠屏手机,确实诱人。 时间回到2018年,折叠屏手机“出道即巅峰”。柔宇科技给智能手机带来了全新形态,随后三星与华为迅速跟进,推出相关产品。 但相较于折叠屏的惊艳,易碎的屏
镁客网
2022/04/12
2640
与苹果的「高端市场」之争,国产手机只能指望「折叠屏」?
国产手机:2022疑无路,2023又一村?
1月28日,Counterpoint Research公布的2022中国智能手机市场销量报告显示,中国智能手机销量2022年同比下降14%,达到十年来的最低水平。销量持续走下坡路,国内智能手机厂商们似乎已难改市场羸弱现状。
刘旷
2023/02/08
2120
为抛弃刘海屏,苹果预备在显示屏上打孔,但这似乎已经落伍了
随着人脸识别解锁、支付等应用的兴起,相关技术及元器件也成为了移动智能手机的标配。从iPhone X发布至今,其后几乎每一款品牌都有支持人脸识别的新机发布,但也始终没能从根本上解决iPhone“刘海屏”的问题。当然,苹果也一直在尝试研究出更好的替代方案。
镁客网
2018/11/23
5910
1万元的iPhone X太贵买不起?至少中国富人穷人都买得起
iPhone X发布已有2天,在中国收到的评论呈现出前所未有的两极分化。 好的给予了溢美之词: “苹果 iPhone 发布会超全记录:iPhone X 技术颠覆,价格贵哭”、“iPhone X发布!致敬乔布斯,没有比它更美好的方式了”; 不好的还是说苹果没创新: “史上最贵iPhoneX的尴尬:设计不及小米,技术晚于华为,买吗?”、“除了涨价 iPhone 8已经没有颠覆性的创新”。 排除连iPhone 8和iPhone X都不区分的“恶意差评”,我们来看看iPhone X最被差评的地方在哪里:全面屏、无
罗超频道
2018/04/16
3.4K0
1万元的iPhone X太贵买不起?至少中国富人穷人都买得起
折叠屏竞争又燃新战火,vivo下场晚了吗?
前些日子,有关智能手机又双叒叕卖不动了的消息再一次冲上话题榜前列,聚焦的是这届年轻人不怎么换手机了。时间往回倒几年,绝大多数年轻人不说一年一换,两年换一次手机也算是常态,如今他们平均换机周期已超31个月,媒体将这种现象称之为年轻人的“换机焦虑”。
用户2908108
2022/05/17
2380
折叠屏竞争又燃新战火,vivo下场晚了吗?
NEX让人们对vivo刮目相看,这个互联网巨头出了一份力
6月12日晚上,距离世界杯开幕只有两天时间,作为本届世界杯赞助商之一的vivo在上海发布重量级新机型vivoNEX。这款新机是今年2月底在MWC上展示的vivo APEX概念机的量产版,集成了不少黑科技——NEX对于vivo的价值有点像MIX对于小米的价值,大幅提升了手机品牌的科技感。
罗超频道
2018/07/23
5950
NEX让人们对vivo刮目相看,这个互联网巨头出了一份力
手机厂商的开年大考:卷AI,还是卷MR?
一个是OpenAI发布的一系列demo视频,仅需寥寥数字的提示词,文生视频模型Sora即可生成一段场景逼真、动作丝滑、细节丰富的视频。被“震惊”的不单单是影视从业者,包括周鸿祎在内的大佬坦言:通用人工智能的实现时间可能缩短至一两年。
Alter聊科技
2024/03/04
1430
手机厂商的开年大考:卷AI,还是卷MR?
荣耀9登陆德国比国内贵一大截,诠释中国手机出海的“荣耀之道”
北京时间6月27日晚,荣耀9正式登陆德国市场,起售价449欧元,折合人民币约3454元,比国内高1000多,沿袭了荣耀系列产品进军海外的定价惯例。事实上,更早之前荣耀9在芬兰开启预售时定价也比国内高出
罗超频道
2018/04/25
9660
荣耀9登陆德国比国内贵一大截,诠释中国手机出海的“荣耀之道”
“中国芯”引热议,智能手机要规避技术创新的三大陷阱
在近期爆发的中美贸易战中,美国商务部对中兴的7年禁令在国内引发热议,研发具有世界级水平的自主芯片,不再受制于人,已是燃眉之急。举一反三地来看,中国需要的不只是芯片,而是在各个领域都掌握核心技术,比如操作系统、云计算、AI、无人车等等。
罗超频道
2018/07/23
4220
“中国芯”引热议,智能手机要规避技术创新的三大陷阱
手机圈偏科生逆袭的思考,纵向的生存空间还有多少?
当下的手机市场用“日新月异”来形象再合适不过了,从“中华酷联”到小米、魅族、乐视的崛起再到VIVO、OPPO的逆袭;从大可乐、iuni等一批新晋手机厂商相继倒闭到三星“炸机门”、苹果“电流门”,再到锤子科技资产大幅缩水、准备上市的美图其95.1%的利润来源于美图手机,手机行业的角色转换故事每天都在上演。中国手机市场就如一个班级,成绩有好坏优劣,名次在前后更迭,有班长、尖子生、班花、班草等各类角色,更少不了一门成绩极其优秀的偏科生。那么在手机领域这个“大班级”中,谁是消费者眼中的偏科生,他们又是否还有逆袭成长,成为班级NO.1的机会?
曾响铃
2018/08/20
5610
手机圈偏科生逆袭的思考,纵向的生存空间还有多少?
MWC热词盘点,今年的手机都会是咋样的?
科技的迅速发展,无疑会反映在人们所熟悉的智能手机领域。在本届MWC上,众多厂商各显神通,带来的旗舰手机各具特色,持币以待的你是不是已经看花了眼?那么,就跟小编一起数数这届MWC的新潮流有哪些吧。 众厂
VRPinea
2018/05/15
1K0
镁客请讲 | 光鉴科技CEO朱力博士:人工智能+纳米光学,赋能机器视觉
我们的技术可以把结构光的成本降到现在的一半以内。这样将有利于安卓手机上3D结构光的普及量产。
镁客网
2018/12/24
6850
镁客请讲 | 光鉴科技CEO朱力博士:人工智能+纳米光学,赋能机器视觉
智能手机迎来三国时代,2016年下半年旗舰机展望
近日,国际数据公司(IDC)公布了《全球手机季度跟踪报告》,从数据看,2016年第一季度智能手机出货量前五强悄然发生改变。其中三星、苹果依旧占据前两位,华为、OPPO、vivo分别位列其后,尤其是OP
镁客网
2018/05/28
4690
五大层面详解智能手机创新天花板
苹果失去创新已不是什么新观点,前段时间新发布的iOS 14也有不少人戏谑是“掏空安卓”。事实上,真有点为难苹果了,近几年智能手机领域的跃进式创新几乎绝迹,更多的还是微创新,或者只是技术常规迭代。
刘旷
2020/07/03
8330
推荐阅读
相关推荐
作为头号大敌,三星为何还给苹果代工屏幕和处理器? | 拔刺
更多 >
LV.0
南京市镁一刻网络科技有限公司
目录
  • 事件流
    • 事件冒泡
    • 事件捕获
    • DOM 事件流
  • 事件处理程序
    • DOM2 级事件处理
      • addEventListener() 和 dom.on(事件) = 函数
      • removeEventListener() 和 dom.on(事件) = null
    • IE 级
      • attachEvent()
      • detachEvent()
      • 封装跨浏览器的事件处理函数
  • 事件对象
    • DOM 事件对象
      • 常用属性
      • target 与 currentTarget
      • eventPhase 和 stopPropagation
    • IE 事件对象
      • 常用属性
      • event 对象的获取
    • 总结
  • 事件Type
    • UI事件
      • load 事件
      • unload 事件
      • resize 事件
      • scroll 事件
    • 焦点事件
    • 鼠标与滚轮事件
      • 鼠标点击与移动
      • 滚轮
      • 触摸屏
    • 键盘和文本事件
      • 键盘
      • textInput 事件
    • 设备事件
    • 触摸与手势事件
      • 触摸事件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档