Javascript 页面行为事件&自定义事件

页面行为事件

定义:指窗体(window)和根页面(document)的形态、状态的改变触发的时间,这里主要指出典型的页面行为事件。

常见的页面行为事件

1//阻塞询问用户 2window.onbeforeunload = function() { 3  4    return '你确认要离开吗?'; 5   6}; 7 8//无法阻塞 9window.onunload = function() { 10  11     12   13}; 14 15//无法阻塞 16window.onclose = function() { 17  18     19   20}; 21//无法阻塞 22window.onload = function(){ 23 24};

页面加载完成的事件(在onload之后调用)

1//页面状态事件 2document.onreadystatechange = function(){ 3 4    if(document.readyState=='complete') 5     { 6        7     } 8}; 9 10//页面加载完最先调用的事件 11document.addEventListener("DOMContentLoaded", functio(){ 12 13}, false);

页面像素变化事件meidaQueryChanged

1var mql = window.matchMedia("(max-width: 700px)"); //顶一个mediaQuery匹配对象,当匹配到当前media,则触发回调 2 // 指定回调函数  3mql.addListener(function(mql){    4  if (mql.matches) {    5   6  // 宽度小于等于700像素    7  } else {     8   // 宽度大于700像素   9 mql.removeListener(mqCallback);  10   } 11  12});

移动页面触摸事件

1function load (){ 2 3 document.addEventListener('touchstart',touch, false); 4 document.addEventListener('touchmove',touch, false); 5 document.addEventListener('touchend',touch, false); 6 7 function touch (event){ 8 var event = event || window.event; 9 10 var oInp = document.getElementById("inp"); 11 12 switch(event.type){ 13 case "touchstart": 14 oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")"; 15 break; 16 case "touchend": 17 oInp.innerHTML = " 18Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")"; 19 break; 20 case "touchmove": 21 event.preventDefault(); 22 oInp.innerHTML = " 23Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")"; 24 break; 25 } 26 27 } 28} 29window.addEventListener('load',load, false);

html5滚轮控件  http://www.17sucai.com/pins/7750.html

~~~~~~~~~~~~~~~~~~~~2014-11-29 更新~~~~~~~~~~~~~~~~~~~~~~~

自定义事件

对于自定义事件,这是一个很时尚的词汇,对于一个事件,他需要具备什么样的条件呢?

①使用特定的消息队列,必须遵守先进先出的原则

②事件具有瞬时性,在特定的条件下,事件造成的结果不会持久化,除非特别的进行了保存

③事件必须可传递,可被拦截,可以阻止浏览器默认行为

④必须遵循3个阶段的原则(根元素-*-*->目标元素的捕获阶段;目标元素的处理阶段;目标元素-*-*->根元素冒泡阶段),

其中第一阶段对于非目标元素而言,并不**自动(当然如果你喜欢的话其实也可以捕获)**进行捕获处理(这点比android好多了),

(注:在标准浏览器中,addEventListener的第三个参数 useCapture表示是否在捕获阶段捕获,值为true时在捕获阶段捕获)

⑤必须可触发dispatchEvent

自定义事件①

1/** 2 *自定义事件 3 * 4 **/ 5var myEvent = document.createEvent('CustomEvent');  6 7myEvent.initCustomEvent('myevent',true,false,{name:'张三'}); 8//参数1表示事件的名称,参数二表示是否可冒泡,参数三表示是否可取消 9 10element.addEventListener('myevent', function(event) { 11    12    console.log('Hello ' + event.detail.name); 13     14 });  15  16element.dispatchEvent(myEvent);

注意:createEvent的参数必须参考如下表格

自定事件②

此外,还有一种自定义事件的方式

1document.addEventListener('look',function(){ 2 3 console.log('look me !'); 4 5},false); 6 7var ev = new Event("look", {"bubbles":true, "cancelable":false}); 8document.dispatchEvent(ev);

try doing it!

点赞
收藏

评论区

加载中...

相关推荐

vue 打开弹框,底部页面禁止滑动

/\解决iphone页面层级相互影响滑动的问题\/closeTouch:_function_(){document.getElementsByTagName("body")\0\.addEventListener('touchmove',this.handler,{passive:false});//阻止默认事件},openT

jabdp宝典:新版事件编辑

         低代码开发平台jabdp的页面事件编辑迎来了重大更新,本次更新对事件编辑进行了许多优化。好了废话不多说,就让小编带大伙来了解下新版事件编辑吧!(新版)事件编辑        Jabdp平台的javascript编程是基于事件驱动的,所谓事件驱动,就是指在页面中执行了某种操作所产生的动作,就称为“事件”(Event)。比如

STM32中断与事件

关于事件、中断事件 、中断三个概念的比喻比如一老师在教室里给学生们上课。课堂上的学生可能做出各种行为动作,比方做笔记、打哈气、翻书包、讲小话等,我们把这些行为统称为事件,其中有些行为老师往往只是视而不见,继续他的上课;而有些行为可能导致老师的上课中止,比方讲小话,并对学生的相关行为予以警告、批评或纠正等,然后继续上课。我们把老师因为学生的某些行为而中

前端开发者需要知道的Web 标准 & W3C 规范

原文链接:Web标准web标准主要分为结构、表现、行为3部分。结构:指我们平时在body里面写的标签,主要是由html标签组成表现:指更加丰富html标签样式,主要由css样式组成行为:指页面和用户的交互,主要由javascript部分组成W3C规范w3c

GitHub标星13.1k,JavaScript基础知识必知(一)!前端入门必看!

JavaScript背景Web前端有三层:HTML:从语义的角度,描述页面结构CSS:从审美的角度,描述样式(美化页面)JavaScript:从交互的角度,描述行为(实现业务逻辑和页面控制)发展历史JavaScript诞生于

JavaScript事件 ——常见事件

1.什么是事件?      当我们与浏览器中Web页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击、鼠标经过某个特定元素或按下键盘上的某些按键。事件还可能是Web浏览器中发生的事情,比如说某个Web页面加载完成,或者是用户滚动窗口或改变窗口大小。常见事件:(http://www.runoo

Javascript 页面行为事件&自定义事件 - HelloWorld