LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

一次 H5 页面在 PC 端的滚动条与轮播图修复实例(Vue + Vant)

zhenglin
2026年1月6日 9:15 本文热度 366

本文旨在通过我的前端开发经历,从实操角度出发,帮助读者了解非PC浏览器中滚动条和轮播图的修复方法。

背景

最近在使用VSCode维护一个 已经打包好的 H5 页面(Vue + Vant), 需求是:在信息屏中正确展示该页面。 页面结构特点:

  • 已编译完成(app.js / chunk-vendors.js

  • 使用 Vant 的 van-swipe 作为轮播图

  • 页面原本是 移动端 H5,并非 PC 设计


在 维护过程中,陆续出现了一系列问题:


  1. 右侧滚动条除了浏览器自带,但 页面浏览器消失

  2. 轮播图失效,所有图片横着排或者堆在一起

  3. 后期甚至出现 127.0.0.1 拒绝连接


这篇文章完整记录了 问题定位 → 错误尝试 → 正确解法 的全过程。



问题一:滚动条异常

现象

  • 页面右侧 滚动条消失


1️⃣ 初步排查:不是浏览器 Bug

通过 DevTools 发现:

  • body.phone-content、内部容器 同时设置了 overflow

  • 页面存在类似代码:

body[unresolved] {

  overflow: hidden;

}


这是早期 SPA (单页应用)用于“防闪屏”的遗留写法。



2️⃣ 第一层正确修复(滚动条)

原则:页面只能有一个滚动容器 让Body不滚动,#app滚动起来

html, body {

  height: 100%;

  margin: 0;

}


body {

  overflow: hidden;

}


#app {

  height: 100%;

  overflow-y: auto;

  -webkit-overflow-scrolling: touch;

}

效果:滚动条出现在容器内部

问题二:轮播图失效,图片全部横着排列


现象


  • 原本的轮播图变成:

[ 半张图 ][ 图 ][半张图 ]


  • 滑动失效,但小圆点仍然存在

1️⃣ 第一误判(常见坑)

一开始以为是:

  • flex 问题

  • display: block 问题

  • CSS 把轮播“弄坏了” 于是尝试了大量 强制恢复文档流 的 CSS:

代码高亮:

position: static !important;

display: block !important;

结果:轮播结构被破坏,问题更严重



2️⃣ 关键事实:轮播 JS 正常


发现:

<div class="van-swipe__track"

     style="transform: translateX(-2176px); width: 2720px;">

这说明:

  • JS 已经计算宽度

  • transform 在变化

  • 轮播并没有失效



3️⃣ 真正原因:容器“看穿”了移动端轮播

关键点:

<div class="van-swipe-item" style="width: 544px;">

而 容器宽度是:

.page_container {

  width: 900px;

}

也就是 一屏能显示 1.8 张 slide

所以,确实是轮播在动,但旁边的 slide 被同时显示出来了


4️⃣ 修复方式

让每个 slide 上占满容器宽度

代码高亮:

 .van-swipe {

      width: 100%;

      max-width: 900px;

      margin: 10px auto;

      overflow: hidden;

      position: relative;

      background: transparent;

    }


    .van-swipe__track {

      display: flex;

      transition: transform 0.5s ease;

    }


    .van-swipe-item {

      flex: 0 0 100%;

      width: 100%;

    }


效果:轮播、自动播放、小圆点全部恢复 #问题三:127.0.0.1 拒绝连接


原因

这是运行环境问题。 出现原因:

  • 使用 http://127.0.0.1:xxxx/index.htm

  • 本地服务器(Live Server / Python / Tomcat)已关闭

  • 刷新时浏览器重新请求 → 被拒绝



解决方案

启动本地服务器 在项目目录中打开控制台,输入指令:


或 VSCode:

  • 安装 Live Server

  • 选中html文件,右键 → Open with Live Server


五、全过程踩坑总结

❌ 常见错误


✅ 正确原则

  1. 先确认是不是组件(van-swipe)

  2. 不要全局改 position / display

  3. 优先从“宽度模型”入手

  4. 移动端组件 ≠ PC 展示天然正确

 

六、结语

这次问题的本质:

一个移动端 H5 页面,不同浏览器可能不兼容

只要理解了:

  • Vant Swipe 的设计前提

  • PC 与移动端 viewport 的差异

  • CSS 能做什么,不能做什么

问题其实是完全可控、可复现、可总结的


如果你也遇到过:

  • H5 页面在 PC 上“样式诡异”

  • van-swipe 看起来像坏了

  • 滚动条混乱

希望这篇踩坑记录能帮你少走弯路


参考文章:原文链接


该文章在 2026/1/6 9:15:42 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved