恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

悬停以后行程卡片跑位了,折叠屏旅行图鉴如何保存地图视口

  • 首页
  • 资讯中心
  • /
  • 悬停以后行程卡片跑位了,折叠屏旅行图鉴如何保存地图视口

相关资讯

STM32H743实现UVC摄像头:从CubeMX配置到稳定出图的完整指南 2026/10/5 20:11:39
CentOS 7静态路由配置详解:从临时生效到永久落盘的完整指南 2026/10/5 20:11:39
开源掌机全解析:从玩家自救史到购买避坑指南 2026/10/5 20:06:38

最新资讯

径向基神经网络在地下水位预测中的实践:从数据预处理到多步滚动预测
AI视频成本拐点:智能体编排为何比模型本身更烧钱
社团信息管理系统毕业设计实战:Spring Boot + Vue 从技术选型到答辩部署
MCP与SERP接入实战:让AI Agent告别幻觉,实时搜索落地指南
全栈项目从零到上线:TaskFlow实战系列之开发环境搭建
火电机组储热改造下的低碳经济调度Matlab实现

今日推荐

2026 AI 开发全家桶落地指南:TaoToken 统一 Key 打通 IDE 插件、Agent 与自动化代码审查全链路配置实测
MR25H40CDF+STM32F031C6工业级高可靠数据存储方案
MRAM+STM32工业断电数据保全实战指南

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

悬停以后行程卡片跑位了,折叠屏旅行图鉴如何保存地图视口

发布时间:2026/10/6 21:58:27
悬停以后行程卡片跑位了,折叠屏旅行图鉴如何保存地图视口 折叠屏从展开态切到悬停态旅行地图通常会从左右并排改成上下分区。第一版把选中站点和地图偏移都留在页面局部窗口一变化白崖灯塔的标记又回到默认位置右侧行程卡也跟着跳回第一天。折叠屏旅行图鉴的界面有 DAY 1DAY 3、雾港车站到落日营地的时间线以及可缩放的路线画布。这里最需要保住的是“正在看哪一天、选中哪个站点、地图停在哪儿”而不是某一种布局的像素位置。把行程和视口拆成两份状态行程选择属于业务状态视口属于交互状态。它们都应该跨布局保留但各自的保存规则不同。exportinterfaceTripStop{id:stringdayId:stringtitle:stringtime:stringcoordinate:{x:number,y:number}}exportinterfaceMapViewport{scale:numberoffsetX:numberoffsetY:number}exportinterfaceTripWorkspace{selectedDayId:stringselectedStopId:stringviewport:MapViewport posture:compact|halfFolded|expanded}站点坐标是地图坐标不随窗口宽度变化。offsetX与offsetY保存用户平移后的画布位置折叠屏改变姿态时布局只改变地图容器大小不重置这份视口状态。点击站点时不要按数组下标保存时间线可能按日期过滤也可能把已完成站点收起。用selectedStop: number会让“第二项”在过滤后指向另一处地点。exportclassTripController{privatestops:TripStop[][]workspace:TripWorkspace{selectedDayId:day-1,selectedStopId:,viewport:{scale:1,offsetX:0,offsetY:0},posture:expanded}selectStop(stopId:string):boolean{conststopthis.stops.find((item:TripStop)item.idstopId)if(!stop)returnfalsethis.workspace.selectedStopIdstop.idthis.workspace.selectedDayIdstop.dayIdreturntrue}visibleStops():TripStop[]{returnthis.stops.filter((item:TripStop)item.dayIdthis.workspace.selectedDayId)}}ForEach同样传入stop.id作为键。站点列表重新排序后正在探索的橙色标记仍落在同一个地点。姿态变化只重排区域悬停态不该创建第二份地图组件状态。页面根据姿态决定时间线和地图的排列方向控制器始终使用同一个workspace。BuildertripBody(){if(this.workspace.postureexpanded){Row({space:18}){this.stopTimeline(this.visibleStops())this.mapPanel(this.workspace.viewport)}.height(100%)}else{Column({space:14}){this.mapPanel(this.workspace.viewport)this.stopTimeline(this.visibleStops())}.height(100%)}}地图组件不读取selectedDay的数组位置只根据selectedStopId高亮目标。时间线放到下半屏时白崖灯塔仍保持原来的选中状态。手势坐标需要换算回地图坐标缩放后的拖动距离不能直接写入偏移。将屏幕位移除以缩放倍数再更新视口放大后手指移动 20 像素才不会让地图飞出很远。functionclamp(value:number,min:number,max:number):number{returnMath.max(min,Math.min(max,value))}exportfunctionpan(viewport:MapViewport,dx:number,dy:number):MapViewport{return{...viewport,offsetX:viewport.offsetXdx/viewport.scale,offsetY:viewport.offsetYdy/viewport.scale}}exportfunctionzoomAt(viewport:MapViewport,focusX:number,focusY:number,nextScale:number):MapViewport{constscaleclamp(nextScale,0.7,2.6)constmapX(focusX-viewport.offsetX)/viewport.scaleconstmapY(focusY-viewport.offsetY)/viewport.scalereturn{scale,offsetX:focusX-mapX*scale,offsetY:focusY-mapY*scale}}zoomAt让手势焦点停在原处。无论用户在展开态还是悬停态调整地图视觉上都像在同一张地图上继续操作。交通凭证与行程选择分离页面中的登乘凭证开关只决定凭证是否展开不应覆盖当前站点。恢复页面时单独保存这类短暂状态即可。exportinterfaceTripSnapshot{selectedDayId:stringselectedStopId:stringviewport:MapViewport passOpen:boolean}exportfunctionrestore(snapshot:TripSnapshot,stops:TripStop[]):TripWorkspace{constselectedstops.some((item:TripStop)item.idsnapshot.selectedStopId)return{selectedDayId:selected?snapshot.selectedDayId:day-1,selectedStopId:selected?snapshot.selectedStopId:(stops[0]?.id??),viewport:snapshot.viewport,posture:expanded}}当前旅行数据为本地行程。后续接入地图服务或折叠状态接口时接口层只负责提供坐标和姿态变化行程选择、视口换算与恢复逻辑继续由本地状态层处理。卡片无论移到上半屏还是侧栏都不会失去用户刚才看到的位置。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号