首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

web前端常见面试题

还是得网站的可访问性,保证用户在任何环境下都能正常访问网页得核心内容或能使用基本功能(避免网页打不开、排版错误等),并为他们提供当前条件下最好的体验,这就是渐进增强得核心思想。...对元素语义化的目的是为了让元素的语义和呈现分离,元素负责文档内容的结构与含义,而 CSS 样式控制内容的呈现,像 元素,没有语义但却能将字体变粗,这类元素违背了语义化的目的,将会被废弃。...理由如下: 当鼠标悬停在未访问的链接上时,:link 和 :hover 都会命中,如果 :hover 在 :link 之前声明,那么(:hover)就会被覆盖; 当鼠标悬停在已访问的连接上时,:visited...hover 都会命中,如果 :hover 在 :visited 之前声明,那么(:hover)就会被覆盖; 当鼠标单击链接时,:active 和 :hover 都会命中,我们大多是想让 :hover 悬停时展示样式...因此上面代码在点击子元素时会先执行子元素绑定的事件,然后向上冒泡,触发父元素绑定的事件。 addEventListener 函数的第三个参数是个布尔值。

2.3K20

JavaScript 事件加载有哪些应用场景?

通过在页面加载过程中绑定和触发各种事件,可以实现丰富的交互功能和用户体验改善。本文将介绍JavaScript事件加载的概念和应用场景,并提供一些实例演示,帮助读者深入理解和应用事件加载。...事件可以是用户交互行为(如点击、悬停、输入等),也可以是页面加载、网络请求等。通过事件加载,可以在特定的事件触发时执行相应的JavaScript代码,实现各种功能和交互效果。...3 动态内容加载和异步请求 通过绑定页面滚动事件、按钮点击事件等,在特定条件下触发异步请求,实现动态加载内容。例如,无限滚动加载更多数据、异步获取后台数据更新页面等。...4 页面元素操作和样式修改 通过绑定鼠标悬停事件、键盘事件等,实现页面元素的样式修改和交互效果。例如,鼠标悬停时显示提示信息,按键触发菜单展开等。...4.页面元素操作 HTML代码: JavaScript代码: // 绑定鼠标悬停事件 document.getElementById("box").addEventListener

16710
您找到你想要的搜索结果了吗?
是的
没有找到

MediaPreview入门

mediaPreview = new MediaPreview(mediaContainer, { mediaTypes: ['image']});预览模式MediaPreview支持多种预览模式,如单击或悬停触发预览...例如,要在鼠标悬停触发预览:javascriptCopy codeconst mediaPreview = new MediaPreview(mediaContainer, { trigger: '...通过使用​​MediaPreview​​,我们将产品图库包装在一个容器中,并配置为仅显示图片类型,并在鼠标悬停触发预览。...过度依赖定制化:MediaPreview提供了大量的配置选项和自定义样式的能力,过度的定制可能会导致代码复杂化和难以维护。同时,因为需求变化,需要不断修改配置,这也增加了开发和维护的复杂性。...Fancybox:Fancybox是另一个多媒体展示库,它提供了类似于Lightbox的功能,具有更高的定制化能力。它支持各种类型的内容,并且有丰富的配置选项。

1.1K10

【Java 进阶篇】HTML DOM 事件详解

; }); 上面的代码演示了如何使用addEventListener方法为一个按钮元素添加点击事件的监听器。当用户点击按钮时,会触发click事件,弹出一个警告框。...鼠标移动事件(mousemove) 鼠标移动事件在用户的鼠标光标在元素上移动时触发。您可以使用鼠标移动事件创建各种效果,如鼠标悬停效果和拖拽功能。...事件处理程序通常通过addEventListener方法将其附加到DOM元素上,以便在事件触发时执行。事件处理程序接收一个事件对象作为参数,该对象包含了与事件相关的信息。...) { // 在这里编写处理点击事件的代码 console.log('点击事件已触发'); }); 上述代码中,我们使用addEventListener为一个按钮元素添加了一个点击事件处理程序。...console.log('点击了列表项: ' + event.target.textContent); } }); 在这个示例中,我们将点击事件处理程序附加到了元素上,在用户点击

18920

你无法检测到触摸屏

问题是,从来没有人说过一个非触屏设备不能实现触摸接口,或者至少在 DOM 里拥有事件句柄。...Chrome 团队用一次升级“修复”了这个问题,它在当启动时检测到了可触摸输入设备时才启用触摸接口。 所以我们都没问题了,对吧? 不完全是。 接口的接口 ¶ 对于设备本身,浏览器仍然有相当远的距离。...戳它 ¶ 我之前说,另一种方法来测试特性是看接口是否真正的完成了他们支持的功能…… var hasTouch; window.addEventListener('touchstart', function...悬停状态的处理 ¶ 当前的触摸屏并不能传输鼠标/光标悬浮状态, 所以,最好调整我们对于触摸屏的UI设计,以便在触摸屏上能够继续使用。 当然,键盘也是不能悬停的。...悬停状态也是一样的。 关于事件和交互,假设任何人可能有触摸屏。同等的实现键盘,鼠标和触摸交互,确保没有阻止彼此。 或者,就像我在我的关于媒体查询的文章里建议的一样,你可以询问浏览器。

1.9K20

【动画进阶】极具创意的鼠标交互动画

利用 cursor 修改鼠标样式 cursor CSS 属性设置鼠标指针的类型,在鼠标指针悬停在元素上时显示相应样式。...不过,有一点需要注意的是,利用模拟的鼠标指针去 Hover 元素,Click 元素的时候,会发现这些事件都无法触发。...这是由于,此时被隐藏的指针下面,其实悬浮的我们模拟鼠标指针,因此,所有的 Hover、Click 事件都触发在了这个元素之上。...这样就能准确知道元素是否悬停在某个目标元素之上: 利用这两种状态,我们就可以继续实现剩余的放大吸附动画。....g-animation 的元素上 let isHovering = false; // 判断元素是否悬停在具有类名为 .g-animation 的元素上 window.addEventListener

12110

移动端滚动研究

不能实时触发 | | android | 实时触发| 实时触发 | | ios wkwebview内核 | 实时触发| 实时触发 | 不能实时触发表现:在手指触摸的屏幕上一直滑动时和滚动停止的那一刻才触发...防抖(Debouncing) 防抖技术即是可以把多个顺序地调用合并成一次,也就是在一定时间内,规定事件被触发的次数。...节流函数,只允许一个函数在 X 毫秒内执行一次。 与防抖相比,节流函数最主要的不同在于它保证在 X 毫秒内至少执行一次我们希望触发的事件 handler。 关于防抖动与节流,我的博客文章也有提及。...false); 实现以16.7ms 触发一次 handler,降低了可控性,但是提升了性能和精确度。...的确,当滚动时,鼠标悬停在某些元素上,则触发其上的 hover 效果,然而这些影响通常不被用户注意,并多半导致滚动出现问题。

3.2K20

【Web APIs】JavaScript 事件基础 ① ( JavaScript 事件简介 | “ 事件 “ 概念 | “ 事件 “ 三要素 - 事件源 事件 事件处理程序 | 事件类型 )

) 是 JavaScript 脚本中处理 " 事件 " 的函数 , 在该函数中可以针对用户的 不同的动作 做出不同的响应 ; 在网页中 , 每个 HTML 标签元素 都可以触发 JavaScript...('myButton').addEventListener('click', function(event) { console.log('Button clicked!')...; } document.getElementById('myButton').addEventListener('click', handleClick); 3、" 事件 " 类型 " 事件 " 类型...: 鼠标事件 : 鼠标点击 , 鼠标移动 , 鼠标抬起 , 鼠标按下 , 鼠标悬停 ; 键盘事件 : 键盘按下 , 按键抬起 , 键盘输入 ; 表单事件 : 表单提交、表单输入 ; 文档 / 窗口事件...; } document.getElementById('myButton').addEventListener('click', handleClick);

7810

HMTL5新增Api

网络状态检测 //网络连接 window.addEventListener('online',function(){ alert('有网') })...window.addEventListener('offline',function(){ alert('网络断开') }) 全屏与取消全屏...html> 拖拽 相关事件 拖动源对象相关事件 ondragstart:源对象开始被拖动 ondrag:源对象在拖动过程中 ondragend:源对象被拖动结束 拖动源对象可以进入到上方的目标对象可以触发的事件...ondragenter:目标对象被源对象拖动着进入 ondragover:目标对象被源对象拖动着悬停在上方 ondragleave:源对象拖动着离开了目标对象 ondrop:源对象拖动着在目标对象上释放...console.log('源对象拖动进入目标对象') } document.ondragover = function(e){ console.log('源对象悬停在目标对象上方

46310

防抖与节流 & 若每个请求必须发送,如何平滑地获取最后一个接口返回的数据

这样一来,只有最后一次操作能被触发 节流:使得一定时间内触发一次函数。...原理是通过判断是否到达一定时间来触发函数 区别: 函数节流不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数,而函数防抖只是在连续触发的事件后才触发最后一次事件的函数 上面的解释...,摘抄网上的解答 防抖 debounce:当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时 如下图,持续触发 scroll...('scroll', debounce(handle, 1000)) 节流 throttle:当持续触发事件时,保证一定时间段内调用一次事件处理函数 仔细了解了才知道,我以前刚学前端的时候,做 banner...尤其是购买数量,这是一个数字选择器,如果用户频繁点击 + 号,就会连续调用多次查价接口,==最后一次的查价接口返回的数据才是最后选择的正确的价格== 每个查价接口逐个请求完毕的时候,==右边的显示价格也会逐个改变

3.2K50

优化了三年经验者的Echarts卡顿

一次说加载数据太多,页面会卡顿,需求立马上官网写上5k数据,说还可以啊。可以是可以,人家显示一个,你要一个页面显示5个图表,这性能加载翻五倍了呀,姐姐。...如下: window.addEventListener('resize', setTimeout(() => { if (this.lineChart) { console.log...resize,打印5次666(因为有五个图),就意味着chart被resize一次,因为addEventListener、resize内部一个有做取消上一次的变化。...因为window绑定resize只是窗口变化会触发点击按钮的时候,echarts图占的位置变小,并不会触发resize窗口变化,这时,我们要点击按钮的时候,手动触发resize方法即可。...效果观看可戳我 window监听resize事件触发一次,就很优化。 好了,你现在还觉得哪里不行。 三年经验者:我一开始用resize就没用。

4.2K40

前端-日常笔记(个人使用)

原理:在父子标签中如果同时存在点击事件首先会执行子组件中的事件然后执行父组件的事件。应用场景:在点击input输入框的时候展示菜单,点击其他部分则关闭菜单。...监听事件举例:首先事件定义为全局监听点击事件,函数是:mounted() { document.addEventListener('mousedown', this.handleClickOutside...(7)activated()一定要配合keep-alive(缓存作用)来使用,活动时触发(8)deactivated()一定要配合keep-alive(缓存作用)来使用,非活动时触发。...(9) beforeDestroy销毁前状态(10)destroyed执行destroy()后,不会改变已生成的DOM节点,后续就不再受vue控制了应用:清除定时器、延迟器、取消ajax请求等postion...,那么类hover-image对应的标签的样式.image-container:hover .image:not(.hover-image)表示:在image-contianer中悬停,类名是image

8900

JS基础知识总结(五):防抖和节流

二者应对的业务需求不一样,所以实现的原理也不一样,下面具体来看看吧。 1. 防抖(debounce) 1.1 什么是防抖 在事件被触发n秒后再执行回调函数,如果在这n秒内又被触发,则重新计时。...,不断地调整浏览器的窗口大小、或者滚动时会触发对应事件,防抖让其触发一次; 1.3 实现 还是上述列子,这里加入防抖来优化一下,完整代码如下: <!...这就会导致每一次高频事件都会取消前一次的超时调用,导致事件处理程序不能被触发; 2.只有当高频事件停止,最后一次事件触发的超时调用才能在delay时间后执行; 效果: 加入防抖后,当持续在输入框里输入时...2.2 应用场景 (1)鼠标连续不断地触发某事件(如点击),在单位时间内触发一次; (2)在页面的无限加载场景下,需要用户在滚动页面时,每隔一段时间发一次 ajax 请求,而不是在用户停下滚动页面操作时才去请求数据...小结 总结下防抖和节流的区别: -- 效果: 函数防抖是某一段时间内执行一次;而函数节流是间隔时间执行,不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数。

89820

详谈js防抖和节流

二者应对的业务需求不一样,所以实现的原理也不一样,下面具体来看看吧。 1. 防抖(debounce) 1.1 什么是防抖 在事件被触发n秒后再执行回调函数,如果在这n秒内又被触发,则重新计时。...,不断地调整浏览器的窗口大小、或者滚动时会触发对应事件,防抖让其触发一次; 1.3 实现 还是上述列子,这里加入防抖来优化一下,完整代码如下: <!...这就会导致每一次高频事件都会取消前一次的超时调用,导致事件处理程序不能被触发; 2.只有当高频事件停止,最后一次事件触发的超时调用才能在delay时间后执行; 效果: 加入防抖后,当持续在输入框里输入时...2.2 应用场景 (1)鼠标连续不断地触发某事件(如点击),在单位时间内触发一次; (2)在页面的无限加载场景下,需要用户在滚动页面时,每隔一段时间发一次 ajax 请求,而不是在用户停下滚动页面操作时才去请求数据...小结 总结下防抖和节流的区别: -- 效果: 函数防抖是某一段时间内执行一次;而函数节流是间隔时间执行,不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数。

5.5K391

【Java 进阶篇】JavaScript DOM 编程:理解文档对象模型

添加事件监听器 var button = document.getElementById("myButton"); button.addEventListener("click", function()...以下是一些常见的 DOM 事件: 1. click 事件 click 事件在元素被点击时触发。你可以为按钮、链接或其他元素添加 click 事件监听器,以便在用户点击时执行相应的操作。...; }); 2. mouseover 和 mouseout 事件 mouseover 事件在鼠标指针移入元素时触发,而 mouseout 事件在鼠标指针移出元素时触发。这些事件可用于创建悬停效果。...3. keydown 事件 keydown 事件在用户按下键盘上的键时触发。你可以使用这个事件来捕获用户的按键操作,例如输入文本或控制游戏。...; } }); 上面的代码将在用户按下 Enter 键时触发一个提示框。 4. submit 事件 submit 事件在表单提交时触发

19120

Javascript 面试中经常被问到的三个问题!

Throttle: 第一个人说了算 throttle 的主要思想在于:在某段时间内,不管你触发了多少次回调,都认第一次,并在计时结束时给予响应。...对应到实际的交互上是一样一样的:每当用户触发一次 scroll 事件,我们就为这个触发操作开启计时器。...直到“一段时间”到了,第一次触发的 scroll 事件对应的回调才会执行,而“一段时间内”触发的后续的 scroll 回调都会被节流阀无视掉。...现在一起实现一个 throttle: // fn是我们需要包装的事件回调, interval是时间间隔的阈值 function throttle(fn, interval) { // last为上一次触发回调的时间...在某段时间内,不管你触发了多少次回调,我都认最后一次

86420
领券