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

Stella981
• 阅读 343

页面行为事件

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

常见的页面行为事件

//阻塞询问用户
window.onbeforeunload = function() {  
 
    return '你确认要离开吗?';
  
};

//无法阻塞
window.onunload = function() {
 
    
  
};

//无法阻塞
window.onclose = function() {
 
    
  
};
//无法阻塞
window.onload = function(){

};

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

//页面状态事件
document.onreadystatechange = function(){

    if(document.readyState=='complete')
     {
       
     }
};

//页面加载完最先调用的事件
document.addEventListener("DOMContentLoaded", functio(){

}, false);

页面像素变化事件meidaQueryChanged

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

移动页面触摸事件

function load (){

    document.addEventListener('touchstart',touch, false);
    document.addEventListener('touchmove',touch, false);
    document.addEventListener('touchend',touch, false);
    
    function touch (event){
        var event = event || window.event;
        
        var oInp = document.getElementById("inp");

        switch(event.type){
            case "touchstart":
                oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";
                break;
            case "touchend":
                oInp.innerHTML = "
Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";
                break;
            case "touchmove":
                event.preventDefault();
                oInp.innerHTML = "
Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";
                break;
        }
        
    }
}
window.addEventListener('load',load, false);

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

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

自定义事件

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

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

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

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

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

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

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

⑤必须可触发dispatchEvent

自定义事件①

/**
 *自定义事件
 *
 **/
var myEvent = document.createEvent('CustomEvent'); 

myEvent.initCustomEvent('myevent',true,false,{name:'张三'});
//参数1表示事件的名称,参数二表示是否可冒泡,参数三表示是否可取消

element.addEventListener('myevent', function(event) {
   
    console.log('Hello ' + event.detail.name);
    
 }); 
 
element.dispatchEvent(myEvent);

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

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

自定事件②

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

document.addEventListener('look',function(){

 console.log('look me !');

},false);

var ev = new Event("look", {"bubbles":true, "cancelable":false});
document.dispatchEvent(ev);

try doing it!

点赞
收藏
评论区
推荐文章
Easter79 Easter79
2年前
vue 打开弹框,底部页面禁止滑动
/\解决iphone页面层级相互影响滑动的问题\/closeTouch:_function_(){document.getElementsByTagName("body")\0\.addEventListener('touchmove',this.handler,{passive:false});//阻止默认事件},openT
菜园前端 菜园前端
1年前
前端开发者需要知道的Web 标准 & W3C 规范
原文链接:Web标准web标准主要分为结构、表现、行为3部分。结构:指我们平时在body里面写的标签,主要是由html标签组成表现:指更加丰富html标签样式,主要由css样式组成行为:指页面和用户的交互,主要由javascript部分组成W3C规范w3c
Wesley13 Wesley13
2年前
jabdp宝典:新版事件编辑
         低代码开发平台jabdp的页面事件编辑迎来了重大更新,本次更新对事件编辑进行了许多优化。好了废话不多说,就让小编带大伙来了解下新版事件编辑吧!(新版)事件编辑        Jabdp平台的javascript编程是基于事件驱动的,所谓事件驱动,就是指在页面中执行了某种操作所产生的动作,就称为“事件”(Event)。比如
Wesley13 Wesley13
2年前
STM32中断与事件
关于事件、中断事件 、中断三个概念的比喻比如一老师在教室里给学生们上课。课堂上的学生可能做出各种行为动作,比方做笔记、打哈气、翻书包、讲小话等,我们把这些行为统称为事件,其中有些行为老师往往只是视而不见,继续他的上课;而有些行为可能导致老师的上课中止,比方讲小话,并对学生的相关行为予以警告、批评或纠正等,然后继续上课。我们把老师因为学生的某些行为而中
Stella981 Stella981
2年前
JavaScript
Javascript简介web前端有三层:HTML:从语义的角度,描述页面的结构CSS:从审美的角度,描述样式(美化页面)Javascript:从交互的角度,描述行为(提升用户体验)JavaScript的组成ECMAScript5.0:定义了js的语法标准:包含变量、表达式、元素符、函数、i
Stella981 Stella981
2年前
GitHub标星13.1k,JavaScript基础知识必知(一)!前端入门必看!
JavaScript背景Web前端有三层:HTML:从语义的角度,描述页面结构CSS:从审美的角度,描述样式(美化页面)JavaScript:从交互的角度,描述行为(实现业务逻辑和页面控制)发展历史JavaScript诞生于
Stella981 Stella981
2年前
JavaScript事件 ——常见事件
1.什么是事件?      当我们与浏览器中Web页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击、鼠标经过某个特定元素或按下键盘上的某些按键。事件还可能是Web浏览器中发生的事情,比如说某个Web页面加载完成,或者是用户滚动窗口或改变窗口大小。常见事件:(http://www.runoo
Stella981 Stella981
2年前
JavaScript——页面相关事件
页面事件是在页面加载或改变浏览器的大小、位置,以及对页面中的滚动条进行操作时,所触发的事件处理程序。加载与卸载事件加载事件(onload)是在网页加载完毕后触发相应的事件处理程序,它可以在网页加载完成后对网页中的表格样式、字体、背景颜色等进行设置。卸载事件(unload)是在卸载网页时触发相应的事件处理程序,卸载网页是指关闭当前页或
京东云开发者 京东云开发者
5个月前
浅谈埋点及其质量保障 | 京东云技术团队
1、埋点是什么埋点又称为事件追踪(EventTracking),指的是针对用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。用大白话说:就是通过技术手段“监听”用户在APP、网站内的行为。2、埋点的作用如果我们想要收集用户行为数据,就可以通过埋点来
赵颜 赵颜
5个月前
WPF框架系列课程(小白进阶选择)
本文将从零基础开始讲解WPF控件、数据绑定、模板样式、资源字典、命令系统、依赖属性、路由事件、动画行为等一系列的知识,内容包含WPF的数据绑定、MVVM概念与实操、样式、模板、命令、依赖属性、路由事件、行为、自定义控件、3D、动画等高级知识,想学习wpf的