-
懒加载核心是按需加载,推荐使用IntersectionObserverAPI实现,辅以loading="lazy"渐进增强;老项目兼容IE可降级为节流滚动监听;框架中宜封装为Hook或指令,避免关键内容懒加载。
-
LessMixins通过位置参数接收多个值,支持默认值但不支持命名传参或跳过参数;可用重载方式实现部分配置,需注意单位校验、颜色处理及展开顺序。
-
HTML图标实现有四种主流方案:一、图标字体(如FontAwesome),通过CSS调用Unicode码点;二、内联SVG,直接嵌入HTML并用CSS控制;三、SVGsprite,集中管理多图标并按需引用;四、CSS伪元素+SVG数据URI,避免额外请求。
-
核心是监听mousemove事件获取clientX/clientY,用throttle节流并归一化,通过document.documentElement.style.setProperty设置CSS变量,在CSS中用hsl()或color-mix()动态生成颜色,注意移动端需兼容touchmove及touch-action设置。
-
虚拟键盘本质是HTML按钮集合,通过JavaScript绑定目标input的DOM引用,用setRangeText()精准控制光标位置与输入,避免value拼接导致事件丢失或光标错乱。
-
用transition实现CSS颜色动画需在默认状态声明transition,支持color、background-color等属性,推荐hsl()/rgb()格式,避免transparent与currentcolor混合,注意性能优化与无障碍适配。
-
JavaScript中不能直接用arr.sort()做数值排序,因其默认按字符串字典序比较,如[10,2,30].sort()得[10,2,30];须传入(a,b)=>a-b等比较函数,且需处理NaN/undefined边界、对象取值路径、原地修改问题;手写快排要注意基准选择、类型检查与迭代优化;归并排序适用于稳定排序、TypedArray及外部排序场景;插入排序在小数组或部分有序时更高效。
-
ul>li*5只生成一个空li的常见原因是文件语言模式非HTML或光标位置错误;正确需设为HTML模式、光标在合法位置并按Tab展开。
-
父容器高度塌陷是因浮动元素脱离文档流,修复方式包括:加空div并clear:both、用clearfix类(推荐伪元素display:block+clear:both)、或改用Flex/Grid布局。
-
必须通过本地HTTP服务器运行,不能用file://协议直接打开;因浏览器安全限制,fetch、XMLHttpRequest、ES6模块等无法执行,且路径错误会导致404或空白页。
-
应添加transition属性,如transition:transform0.5sease-out,并为常态设置transform:rotate(0deg),否则因缺失过渡声明导致瞬时跳变或卡顿。
-
iOSSafari中fixed元素失效是因硬件加速未触发或可滚动容器干扰,需避免transform等属性、慎用will-change,并针对键盘遮挡改用absolute+动态top计算。
-
实现高级JavaScript拖拽需基于mousedown/touchstart事件,结合mousemove/touchmove实时更新位置,并在mouseup/touchend结束拖拽。核心是绑定事件到document防止失联,使用offset计算定位,支持触摸设备时通过e.touches[0]获取坐标并统一处理逻辑。为提升体验,可添加边界限制、吸附对齐、拖拽克隆和z-index层级提升。性能方面推荐用transform代替left/top,配合节流优化频繁触发,及时解绑事件避免内存泄漏,确保跨浏览器与移
-
360极速浏览器适配需强制viewport锁定缩放、JS动态设rem基准、媒体查询分档设1px边框、手动按DPR加载高清图,真机调试不可替代。
-
Emotion的keyframes返回的是标识对象而非字符串,必须通过插值(如animationName:${spin})在css/styled中使用;不可硬编码动画名或拼接字符串;支持闭包传参但需避免重复创建;SSR需配合CacheProvider和createCache;哈希去重依赖内容一致,非变量名。