JavaScript 【事件】UI事件

以下大部分为学习《JavaScript 高级程序设计》(第 3 版) 所做笔记。

目录:

1. 了解 UI 事件

2. load 事件

3. unload 事件

4. resize 事件

5. scroll 事件

 

了解UI事件

Q: UI 是什么意思?

A: UI 是 User Interface 的缩写,意思是用户界面。

Q: 什么是 UI 事件?

A: UI 事件指的是那些不一定与用户操作有关的事件。

Q: UI 事件什么时候会被触发?

A: 当用户与页面上的元素交互时触发。

Q: UI 事件有哪些?

A: DOMActivate load unload abort error select resize scroll

 

load 事件

Q: 何时会在何处触发 load 事件?

A: 页面完全加载后(包括所有图像、JavaScript文件、CSS文件等外部资源)在 window 上触发,当所有框架都加载完毕时在框架上面触发,当图像加载完毕时在 元素上面触发。

  定义 onload 事件处理程序的方式   

第一种方式:通过 JS 来指定事件处理程序的方式。



    
        
    
    
        
    

(跨浏览器对象 EventUtil :https://www.cnblogs.com/xiaoxuStudy/p/13131725.html#three )

控制台输出:

第二种方式:为 元素添加一个 onload 特性



    
        
    
    
    

JavaScript 【事件】UI事件_第1张图片

控制台输出:

根据 "DOM2 级事件" 规范,应该在 document 而非 window 上面触发 load 事件。但是,所有浏览器都在 window 上面实现了该事件,以确保向后兼容

因为在 HTML 中无法访问 window 元素,所以在 window 上发生的任何事件都可以在 元素中通过相应的特性来指定。

 

  图像上触发onload事件  

方式1:在 HTML 中为图像指定 onload 事件处理程序

下面例子实现图片加载完毕之后控制台输出“图片加载完毕”。



    
        
    
    
		
    

JavaScript 【事件】UI事件_第2张图片

图片加载完毕后触发图像上面的 onload 事件,控制台打印"图片加载完毕"。

JavaScript 【事件】UI事件_第3张图片

方式2:通过 JS 为图像指定事件处理程序

下面例子实现图片加载完毕之后在控制台输出图片的src。



    
        
    
    
		
        
    

JavaScript 【事件】UI事件_第4张图片

  新图像元素不一定要从添加到文档后才开始下载,只要设置了 src 属性就会开始下载。

 

实现:预先加载图像,再添加 onload 事件,再为图片设置 src

方式1:



    
        
    
    
        
    

JavaScript 【事件】UI事件_第5张图片

方式2 : 使用 DOM0 级的 Image 对象实现

❔ 不知道哪里出问题了,图片没显示出来...

JavaScript 【事件】UI事件_第6张图片

 

  为

JavaScript 【事件】UI事件_第7张图片

只有在设置了

JavaScript 【事件】UI事件_第8张图片

在未指定 href 属性并将 元素添加到文档之前不会开始下载样式表

支持的浏览器:IE、Opera

 

unload 事件

Q: 何时在何处会触发 unload 事件?

A: 文档被完全卸载后在 window 上面触发 unload 事件,当所有框架都卸载后在框架集上触发,当嵌入的内容卸载完毕后在 元素上触发。只要用户从一个页面切换到另一个页面,就会发生 unload 事件。

Q: 什么情况需要用到 unload 事件?

A: 清除引用的时候。清除引用避免内存泄漏。

  指定 onunload 事件处理程序的方式  

方式1: 通过 JS 来指定事件处理程序



    
        
    
    
		
        
    

方式2:为 元素添加一个 onunload 特性



    
        
    
    
    

❔ 在浏览器运行方式1跟方式2的代码,尝试了点击链接、关闭浏览器窗口、重新载入页面,不知道为什么都没有触发 unload 事件。

为了确保向后兼容,所有浏览器都在 window 上实现了 unload 事件。即使,根据"DOM2级事件",应该在 元素而非 window 对象上触发 unload 事件。

 

resize 事件

Q: 什么情况会触发 resize 事件?

A: 当浏览器窗口被调整到一个新的高度或宽度时会触发。浏览器窗口最大化或最小化也会触发。

Q: 何时会触发 resize 事件?

A: 不同浏览器有不同的机制。

  ▶ IE、Safari、Chrome、Opera:浏览器窗口变化了 1 像素时触发,然后随着变化不断触发

  ▶ Firefox:只会在用户停止调整窗口大小时才会触发

Q: 不同浏览器存在不同的机制,在进行开发时应该注意什么?

A: 应该注意不要在事件的处理程序中加入大计算量的代码,因为这些代码可能会被频繁执行,从而导致浏览器反应明显变慢。

Q: resize 事件在哪里触发?

A: window(窗口)上

  指定 resize 事件处理程序的方式   

方式1: 通过 JS 来指定事件处理程序



    
        
    
    
	
        
    

JavaScript 【事件】UI事件_第9张图片

方式2:为 元素添加一个 resize 特性



    
        
    
    
    

JavaScript 【事件】UI事件_第10张图片

 

scroll 事件

Q: 在何时何处触发 scroll 事件?

A: scroll 事件是在 window 对象上发生的。当用户滚动带滚动条的元素中的内容时,在该元素上触发。 元素中包含所加载页面的滚动条。

Q: scroll 事件表示什么?

A: 表示页面中相应元素的变化。

Q: 使用 scroll 事件时需要注意什么?

A: 与 resize 事件类似,scroll 事件也会在文档被滚动期间重复被触发,所以有必要保持事件处理程序的代码简单

  指定 scroll 事件处理程序的方式   

下例实现:滑动滚动条时,在框下文字动态提示滚动了多少次。

方式1: 通过 JS 来指定事件处理程序



    
        
		
    
    
		
2020年5月30日,爱奇艺《青春有你第二季》总决赛举行。通过总决赛最后一次考核舞台现场,九名女团人选最终确定,她们分别是:刘雨昕、虞书欣、许佳琪、喻言、谢可寅、安崎、赵小棠、孔雪儿、陆柯燃,组合名称为“THE NINE”,代表独一无二的九人女团。

滚动 0

JavaScript 【事件】UI事件_第11张图片

方式2:

元素添加一个 resize 特性



    
        
		
    
    
		
2020年5月30日,爱奇艺《青春有你第二季》总决赛举行。通过总决赛最后一次考核舞台现场,九名女团人选最终确定,她们分别是:刘雨昕、虞书欣、许佳琪、喻言、谢可寅、安崎、赵小棠、孔雪儿、陆柯燃,组合名称为“THE NINE”,代表独一无二的九人女团。

滚动 0

JavaScript 【事件】UI事件_第12张图片

 

你可能感兴趣的:(JavaScript 【事件】UI事件)