-
document.addEventListener('mousemove',e=>{document.documentElement.style.setProperty('--x',e.clientX+'px');document.documentElement.style.setProperty('--y',e.clientY+'px');});监听鼠标移动并同步更新根元素CSS变量--x和--y,使用clientX/clientY确保视口坐标精准,避免body导致滚动偏移,纯变量赋值无重排,性能
-
优先使用visualViewportAPI动态调整底部按钮的bottom值,其height属性能准确反映键盘弹出后的可见区域变化;iOSSafari15.4以下则fallback到focus/blur+setTimeout延迟获取innerHeight差值,并确保blur时重置bottom。
-
accesskey属性不可靠,应禁用;其仅触发焦点切换且无反馈,存在跨浏览器差异、系统快捷键冲突、无障碍缺陷等问题;生产环境须用document级keyboard事件监听,配合e.ctrlKey/e.metaKey和e.code判断,并妥善管理生命周期与上下文。
-
高分辨率屏幕下HTML工具显示过小,需通过浏览器缩放、viewport优化、CSS媒体查询、系统DPI设置及rem动态适配五种方式解决。
-
需结合HTML、CSS与JavaScript实现搜索框与导航菜单联动:一、监听输入高亮匹配项;二、点击菜单自动填充搜索框;三、搜索触发分组展开;四、用datalist实现自动补全;五、用:focus-within纯CSS展开菜单。
-
本文详解如何使用useRef和document.addEventListener实现React下拉菜单的“点击外部关闭”逻辑,包含关键修复点、代码优化建议及防坑指南。本文详解如何使用`useRef`和`document.addEventListener`实现React下拉菜单的“点击外部关闭”逻辑,包含关键修复点、代码优化建议及防坑指南。在React中实现“点击下拉区域外自动收起”是一个高频需求,其核心在于:区分点击目标是否属于
-
CSScontent属性无法响应屏幕尺寸变化,必须配合媒体查询控制伪元素显隐;常见失效原因包括样式覆盖、display/visibility隐藏、空content值及布局塌陷;推荐移动优先写法并注意兼容性与布局抖动问题。
-
WebSocket连接超时时间不可运行时修改,DCDN平台该配置为静态项,仅控制台提交生效;Vite代理rewrite需用函数精确处理路径;Nginx须设proxy_http_version1.1并透传Upgrade头;SpringBoot注解端点路径不支持热重载。
-
直接写.btn--disabled更可靠,因框架不总在DOM写disabled属性,BEM修饰符显式可控、SSR友好、语义清晰、命名与状态一致、支持组合、避免嵌套和耦合、适配现代工具链且防构建误删。
-
canvas.toDataURL()导出失败主因是跨域污染,即drawImage跨域图片后canvas被标记为污染状态,导致返回空白或黑图;需用HTTP服务、设置crossOrigin且服务器支持CORS,同时注意DPR适配、格式兼容及Blob内存管理。
-
JavaScript性能优化核心是减少主线程负担、降低资源加载压力、提升执行效率,关键策略包括代码压缩(用Terser等工具精简语法、TreeShaking、图片字体优化)和懒加载(路由级、组件级、图片、第三方SDK按需加载),辅以减少长任务、避免强制同步布局、缓存计算结果及使用现代API。
-
用IntersectionObserver实现滚动触发动画时间线最稳定:设threshold为[0,0.1]提前触发,配合transition而非animation实现进退双向动画,用data-position替代nth-child避免布局错位,移动端加rootMargin适配Safari惯性。
-
shape-outside仅作用于已浮动的块级替换元素,必须同时满足float显式声明、尺寸固定、CORS合法三条件;否则浏览器忽略该声明。
-
Object.assign仅浅拷贝,多级对象会覆盖而非递归合并;需手写deepAssign实现深层合并,注意过滤null、数组、日期及__proto__等危险键;现代环境可用structuredClone+递归提升安全性。
-
Vue的Diff是策略性增量比对,非全量O(n²)比对;Patch是diff结果的自然执行,仅作用于判定变更的节点及必要子树,通过双端剪枝、key映射、v-memo实现三层收敛优化。