mousemove
鼠标双击事件
<button
id=“dbBtn”
οndblclick=“dbFn()”
οnclick=“clickFn()”>双击事件
鼠标悬浮事件
悬浮显示div
原有文字
键盘事件
2.1 鼠标悬浮事件
let btn= $my(“btn”);
let div2 = $my(“div2”);
// 鼠标悬浮事件
btn.onmouseover = function(){
div2.style.display = “block”;
}
// 鼠标离开事件
btn.onmouseout = function(){
div2.style.display = “none”;
}
此处的 $my() 已经进行过封装,这样很方便,代码如下:
function $my(id){
return document.getElementById(id);
}
2.2 点击事件
let timeId = null;
// 单击事件
function clickFn(){
clearTimeout(timeId);
timeId = window.setTimeout(function(){
console.log(“单击事件”);
}, 500)
}
// 双击事件
function dbFn(){
clearTimeout(timeId)
console.log(“双击事件”)
}
2.3 常用的回车事件
// 键盘事件
function keyFn(event){
console.dir(event);
}
// 监听窗口回车事件
document.onkeyup = function(event){
console.log(event.keyCode);
if(event.keyCode === 13){
alert(“回车事件”)
}
}
3.1 获取浏览器类型
let userAgent= navigator.userAgent;
console.log(userAgent);
if (userAgent.indexOf(“Opera”) > -1) { // 判断是否是Opera浏览器
console.log(“Opera”);
};
if (userAgent.indexOf(“Firefox”) > -1) { // 判断是否是Firefox浏览器
console.log(“Firefox”);
}
if (userAgent.indexOf(“Chrome”) > -1) { // 判断是否是Chrome浏览器
console.log(“Chrome”);
}
if (userAgent.indexOf(“Safari”) > -1) { // 判断是否是Safari浏览器
console.log(“Safari”);
}
if (userAgent.indexOf(“compatible”) > -1 && userAgent.indexOf(“MSIE”) > -1) {
console.log(“IE”); // 判断是否是IE浏览器
};
3.2 判断手机机型(移动端解决兼容问题常用)
// 检测机型 安卓还是苹果
function getAdr(){
//获取机型信息
let type = navigator.userAgent;
let isAndroid = type.indexOf(“Android”) > -1 ||
type.indexOf(“Adr”) > -1;
return isAndroid;
}
console.log(getAdr()); // true为安卓 false为苹果
HTML文件代码如下(记得先复制这个)
事件冒泡
div的文本
我是段落标签
事件委托
- 1
- 2
- 3
- 4
增加一个li
4.1 阻止事件冒泡
-
事件冒泡:当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window
-
显然,这是错误的,需要做处理(就像儿子都成年了,做错了事,凭什么找老子?)
// 如果不做处理,点击p标签时会触发div的点击事件
function divFn(e){
console.log(“div被点击了”);
}
function pFn(e){
console.log(“段落被点击了”);
window.event ?
window.event.cancelBubble = true :
// 阻止事件冒泡
e.stopPropagation();
}
4.2 事件委托
-
事件委托:把一个元素响应事件(点击事件、悬浮事件等等)的函数委托给另一个元素
-
举两个例子:
-
隔壁老王和老婆分手了,所以只能委托我去爱她老婆(好坏哦~)
-
放公司的快递到了,因为我请假爱老王老婆去了,所以只能委托前台签收一下
-
在JS中,这是一种好的处理方式:大大的减少dom操作,提升性能
不用事件委托,你得这么处理:
- 循环添加事件,显然,这是很蠢的
for (var i=0;i<aLi.length;i++) {
aLi[i].onmouseover = function() {
this.style.background = ‘orange’;
}
aLi[i].onmouseout = function(){
this.style.background = ‘’;
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可免费获取,包括答案解析。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-r0xaXgS1-1713504618264)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
[外链图片转存中…(img-fqnDH3yJ-1713504618264)]
最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可免费获取,包括答案解析。
[外链图片转存中…(img-RUZUejip-1713504618265)]
-