uni-app web-view组件在nvue环境下具有iOS弹性滚动效果

uni-app web-view组件在nvue环境下具有iOS弹性滚动效果

开发环境 版本号 项目创建方式
Windows win11 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:Alpha

HBuilderX版本号:3.4.11

手机系统:iOS

手机系统版本号:iOS 15

手机厂商:苹果

手机机型:iPhone 13

页面类型:nvue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

### 操作步骤:
web-view组件在Nvue环境下,具有iOS的弹性滚动效果,导致了富文本解析区域具有区域滚动效果,与整体页面的滚动产生了冲突。测试此前hbuilder版本没有此问题,而且vue环境下没有问题  没有弹性滚动。  
但是因项目原因,我们必须采用Nvue环境并且具有富文本文章区域,希望官方去掉该弹性滚动效果

### 预期结果:
希望官方去掉该弹性滚动效果

### 实际结果:
富文本解析区域具有区域滚动效果,与整体页面的滚动产生了冲突

### bug描述:
web-view组件在Nvue环境下,具有iOS的弹性滚动效果,导致了富文本解析区域具有区域滚动效果,与整体页面的滚动产生了冲突。测试此前hbuilder版本没有此问题,而且vue环境下没有问题  没有弹性滚动。  
但是因项目原因,我们必须采用Nvue环境并且具有富文本文章区域,希望官方去掉该弹性滚动效果

更多关于uni-app web-view组件在nvue环境下具有iOS弹性滚动效果的实战教程也可以访问 https://www.itying.com/category-93-b0.html

26 回复

当然尝试了各种 overflow: hidden; -webkit-overflow-scrolling: auto;
都是无效的。下面是bug演示视频

更多关于uni-app web-view组件在nvue环境下具有iOS弹性滚动效果的实战教程也可以访问 https://www.itying.com/category-93-b0.html


顶一顶

求回答!

跪求回答

没人回答就只能一直顶一顶呢

社区没人了吗?

社区没人了吗?

????

?????

????

都死了吗?

????

看来社区的官方都没了?

????

web-view里面的内容有滑动回弹效果的话,我你可以在最外部直接用一个fixed定位定一下

你的意思是外面盖一层,让他无法滑动吗,那内部的超链接无法点击怎么办

不考虑内容点击的情况下可以先这样处理,web-view组件嵌套一层,里面增加一个view定位在web-view之上 <view class="web">
<web-view class=“webView” :style="{ height: viewHeight }" src="…/…/hybrid/html/body.html" @onPostMessage=“changeMessage”></web-view>
<view class="webViewMask"></view>
</view>

.webView {
width: 690rpx;
&Mask {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
}

可是我文章内部有图片可以点击放大,还有超链接点击后可以打开的啊。- -好难受啊

回复 9***@qq.com: 有代码吗我试试

回复 1***@qq.com: 大哥直接创建一个Nvue页面,然后引入https://ext.dcloud.net.cn/plugin?id=805插件,富文本html弄长一点,必须大于当前页面宽度,然后苹果滑动页面的时候如果手指是处于这个mp-html插件区域内,就会出现弹性滚动问题,安卓也会出现 回弹阴影。因为mp-html插件的Nvue版是使用的web-view的方式降级处理的。

是大于当前页面高度,说错了

老兄,问题解决了吗,求解决方案

怎么解决的啊朋友

换vue才行

uni-app 中,web-view 组件用于嵌入网页内容。在 nvue 环境下,web-view 组件的行为与在 vue 环境下有所不同,尤其是在 iOS 设备上。

iOS 弹性滚动效果

在 iOS 设备上,web-view 组件默认会具有弹性滚动效果(即页面内容滚动到顶部或底部时,会出现弹性回弹效果)。这种效果在 nvue 环境下同样存在。

控制弹性滚动效果

如果你想控制或禁用 iOS 设备上的弹性滚动效果,可以通过以下方式进行设置:

  1. 禁用弹性滚动效果

    你可以在 web-view 组件中通过 bounces 属性来控制是否启用弹性滚动效果。bounces 属性默认为 true,表示启用弹性滚动效果。你可以将其设置为 false 来禁用弹性滚动效果。

    <template>
      <web-view :src="url" :bounces="false"></web-view>
    </template>
    
    <script>
    export default {
      data() {
        return {
          url: 'https://example.com'
        };
      }
    };
    </script>
    
  2. 通过 CSS 控制

    你也可以通过 CSS 来控制 web-view 的滚动行为。例如,你可以使用 overflow: hidden 来禁用滚动。

    <template>
      <view class="container">
        <web-view :src="url" class="web-view"></web-view>
      </view>
    </template>
    
    <style>
    .container {
      width: 100%;
      height: 100%;
      overflow: hidden;
    }
    .web-view {
      width: 100%;
      height: 100%;
    }
    </style>
回到顶部