-
虚拟滚动在iOS移动端存在兼容性问题,主因是WebKit异步提交策略导致scroll事件在惯性滚动中延迟或不触发;需添加-webkit-overflow-scrolling:touch、合理设置容器尺寸与阈值,并结合touchmove监听和requestAnimationFrame增强感知。
-
createRenderer是Vue3实现平台无关渲染的核心入口,通过注入标准化rendererOptions接口(如createElement、insert、patchProp等)动态生成适配DOM/Canvas/Worker/SSR等环境的渲染器,render函数与createApp均基于该接口解耦实现。
-
Canvas绘图失败、事件无响应的三大主因:未调用getContext("2d")获取绘图上下文;width/height误设为CSS样式而非HTML属性;点击坐标未通过getBoundingClientRect()换算。
-
Set适合识别元素级增删差异(如A-B、B-A)、判断无序去重后是否相等,但无法处理位置变化、重复次数、嵌套结构或生成补丁,也不能替代虚拟DOM的树结构Diff算法。
-
采用CRDTs实现数据一致性,以Yjs+WebSocket+ProseMirror构建协作编辑器,通过增量同步与presence消息实现实时协作与状态感知。
-
卡片悬浮提示效果中,CSStransition能让提示内容的出现和消失更自然,避免生硬跳入跳出。通过控制透明度、位移或高度等属性的渐变过程,实现平滑动画。透明度渐显(Opacity+Visibility)常用于工具提示或隐藏信息的淡入淡出效果。初始状态设置为完全透明且不可见,鼠标悬停时变为可见并逐渐显现。示例代码:.card-tooltip{ opacity:0; visibility:hidden; &
-
required属性仅对text、email、number、date、checkbox、radio、file、select和textarea等可输入/可选值控件有效,对hidden、button、image、range、color及自定义封装组件可能失效;其空值判定逻辑因type而异,且不拦截JS主动提交,不能替代后端验证。
-
必须用:nth-of-type()精准选第N个某类标签,因其仅对同标签兄弟独立计数;而:nth-child()按所有子元素位置计数,混排时易失效。
-
本文从用户连续点击提交按钮的真实场景出发,讲解前端如何用请求锁、按钮禁用、幂等请求头和失败回滚来减少重复订单、重复保存和重复消息。
-
实时协作编辑的核心难点是多用户异步修改同一数据时如何保证最终一致性且不丢失操作;操作转换(OT)通过动态变换操作位置、合并与逆操作等机制解决该问题,但实现复杂,CRDT是其现代替代方案。
-
mouseenter不冒泡且仅在鼠标首次进入绑定元素自身可视区域时触发,mouseover会冒泡且只要进入元素或其任意子元素的盒模型范围(content+padding+border)即触发。
-
HTML函数不受CPU超频影响,其执行速度由浏览器引擎、事件循环和网络栈决定;超频仅提升WebWorkers中计算密集型任务性能,却可能降低计时精度并暴露竞态问题。
-
gap比margin更可靠,因其是布局层原生间隔控制,不参与盒模型计算,不触发重排、不影响justify-content对齐;而margin模拟易在动态增删或响应式时出错,且无法实现容器边缘留白。
-
按钮没响应需分四步排查:①确认事件是否成功绑定,检查DOM加载时机和选择器正确性;②排除默认行为干扰,如href="#"跳转或preventDefault误用;③检查CSS遮挡,如pointer-events:none或父层溢出裁剪;④事件委托时注意target与currentTarget区别,优先用closest()匹配。
-
transition可实现CSS样式平滑过渡,通过property、duration、timing-function和delay四个子属性控制动画效果,常用于鼠标悬停等交互场景。