交互

探索用户交互全链路疑问,解答交互设计、动效实现与体验优化中的各类交互难题。

  • 1

    回答

    26

    浏览

    Visx 中如何动态更新折线图的数据?

    我用 Visx 画了个简单的折线图,但数据是从接口异步获取的。一开始传空数组没问题,等数据回来 setState 更新后,图表却没重新渲染,这是为啥? 我试过把 data 作为依赖放进 useMemo...

    交互 2026-03-31 14:08:16
  • 1

    回答

    23

    浏览

    React Hook Form 中如何动态控制字段的 required 状态?

    我在用 React Hook Form 做一个表单,有个下拉选项会影响另一个输入框是否必填。我试过用 watch() 监听下拉值,然后在 useEffect 里调用 trigger(),但 requi...

    交互 2026-03-31 14:04:14
  • 1

    回答

    26

    浏览

    搜索关键词高亮怎么在Vue里实现?

    我在做搜索功能时想把匹配的关键词高亮显示,但直接用 v-html 插入带标签的字符串感觉不安全,而且试了下还会把整个结构搞乱。有没有更稳妥的办法? 比如我现在是这样写的: <template&g...

    交互 2026-03-31 12:57:13
  • 1

    回答

    26

    浏览

    PDF导出时中文显示乱码怎么办?

    我用 jsPDF 把网页内容转成 PDF,英文正常,但中文全变成方块或乱码了。试过网上说的 addFont 方法,但还是不行,是不是字体没加载对? 这是我的简化代码: const { jsPDF } ...

    交互 2026-03-31 12:37:10
  • 1

    回答

    23

    浏览

    全局加载遮罩怎么实现才不会影响页面滚动?

    我在做后台管理系统,想加个全局加载状态,比如请求数据时整个页面蒙一层。但试了下直接用 fixed 定位的 div 遮罩,发现页面还能滚动,而且遮罩层有时候会被某些弹窗盖住,层级也不对。 我现在的写法大...

    交互 2026-03-31 12:31:14
  • 1

    回答

    18

    浏览

    无限滚动加载重复数据怎么办?

    我在做商品列表的无限滚动,用的是 IntersectionObserver 监听底部元素。但每次滚动到底部触发加载后,新数据总是和之前的一样,明明接口传的 page 参数是递增的。 我检查了请求,发现...

    交互 2026-03-31 11:32:16
  • 1

    回答

    36

    浏览

    WebSocket房间加入后怎么确保用户不重复创建?

    我在用 WebSocket 做一个多人协作的白板应用,现在卡在房间管理这块了。每次用户输入房间号进房间,我担心会不小心重复创建同一个房间,导致状态混乱。 我试过在服务端用 Map 存房间,但客户端如果...

    交互 2026-03-31 04:34:16
  • 1

    回答

    25

    浏览

    批量操作时如何高效处理选中状态和提交数据?

    我正在做一个后台管理页面,表格里有几百条数据,用户可以勾选多行然后批量删除或修改状态。现在的问题是:我用一个数组 selectedIds 存储选中的ID,但每次点击复选框都要遍历整个列表去更新状态,感...

    交互 2026-03-30 23:30:20
  • 1

    回答

    21

    浏览

    按钮点击后视觉反馈不明显怎么办?

    我在做一个表单提交按钮,用户点完没反应,其实请求发出去了,但页面没任何变化,用户以为没点成功。我试过加个opacity: 0.8,但感觉太弱了,根本看不出来。 也想过用 loading 动画,但不知道...

    交互 2026-03-30 22:50:16
  • 1

    回答

    26

    浏览

    为什么给 scroll 事件加 passive: true 后 preventDefault 不生效了?

    我在做一个自定义下拉刷新功能,需要监听 touchmove 事件并调用 e.preventDefault() 来阻止页面滚动。但 Chrome 控制台一直警告我“Consider marking ev...

    交互 2026-03-30 21:43:15
  • 2

    回答

    33

    浏览

    前端提示音在浏览器中无法自动播放怎么办?

    我在做一个表单提交成功的通知,想加个“叮”一声的提示音,但发现用 new Audio().play() 在 Chrome 里根本没声音,控制台还报错说需要用户手势触发。这咋整? 我试过把音频放在点击回...

    交互 2026-03-30 20:00:14
  • 1

    回答

    67

    浏览

    Leaflet 地图加载后标记点不显示怎么办?

    我用 Leaflet 加载了一个地图,坐标数据是从接口拿的,但地图渲染出来了,标记点却没显示。控制台也没报错,数据明明有啊。 我试过把经纬度写死成 [39.9042, 116.4074] 也不行,是不...

    交互 2026-03-30 17:15:14
  • 1

    回答

    27

    浏览

    百度地图点击标记后如何获取自定义数据?

    我在用百度地图API添加多个标记点,每个点都绑定了不同的业务ID,但点击时不知道怎么拿到这个ID。试过在addEventListener里直接读marker的属性,但拿不到我set的时候传的数据。 我...

    交互 2026-03-30 15:22:15
  • 1

    回答

    24

    浏览

    上传文件时如何实时显示进度条?

    我用 axios 上传文件,但搞不懂怎么拿到上传的实时进度。 试过 onUploadProgress 回调,但进度条要么不动,要么直接跳到100%,根本没用。是不是我写法有问题? axios.post...

    交互 2026-03-30 14:10:12
  • 2

    回答

    38

    浏览

    Cesium中如何正确加载本地GeoJSON数据?

    我在用Cesium加载本地的GeoJSON文件时总是失败,控制台报错说找不到资源。明明路径是对的,也试过把文件放public目录下,但还是不行。 我用的是Vite搭建的项目,是不是需要特殊配置?下面是...

    交互 2026-03-30 13:52:19
  • 1

    回答

    31

    浏览

    拖拽排序时列表项位置错乱怎么办?

    我用原生 JS 实现了一个简单的拖拽排序功能,但每次拖动后列表项的位置总是不对,有时候还会重叠。 试过监听 dragover 事件并调用 e.preventDefault(),但还是不行。下面是我的关...

    交互 2026-03-30 11:45:16
  • 1

    回答

    30

    浏览

    Formik 表单里怎么监听某个字段变化并自动触发校验?

    我用 Formik 做一个注册表单,想在用户输入手机号时实时校验格式是否正确,但试了 onInput 和 onChange 都没生效。官方文档说要用 validate,但那样是整个表单提交才触发的吧?...

    交互 2026-03-30 10:19:16
  • 1

    回答

    23

    浏览

    可视化编辑器中如何动态更新配置面板的表单项?

    我在做一个低代码平台的可视化编辑器,左侧是画布,右侧是属性配置面板。现在的问题是:当我点击画布上的不同组件时,右侧的配置表单需要动态切换,但用 React 的 useState 更新表单字段后,输入框...

    交互 2026-03-30 08:50:20
  • 1

    回答

    18

    浏览

    为什么 touchmove 事件在移动端不触发?

    我在做一个移动端的滑动组件,监听了 touchstart 和 touchmove,但发现 touchmove 根本没执行,控制台一点输出都没有。 试过给元素加 touch-action: none,也...

    交互 2026-03-30 08:30:14
  • 1

    回答

    28

    浏览

    Tab键导航时焦点顺序乱了怎么办?

    我做了一个模态弹窗,里面有几个按钮和输入框,但按Tab键时焦点顺序完全不对,有时候直接跳到浏览器地址栏去了。明明元素都在页面上,而且都设置了tabindex,怎么还是不按顺序走? 我试过把tabind...

    交互 2026-03-30 08:16:19