1***@qq.com
1***@qq.com
  • 发布:2022-08-26 17:32
  • 更新:2023-10-07 10:59
  • 阅读:207

【报Bug】uni.pageScrollTo 在safari移动端 导致悬浮元素闪屏(稳定重现)

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: MacOs Monterey

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iphone 11

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: CLI

CLI版本号: 4.5.13

示例代码:

代码

<template>  
  <div class="my-app">  
    <div class="nav">  
      <div class="item" v-for="n in 30" @click="scroll" :key="n">{{n}}</div>  
    </div>  
    <div class="body">  
      <div class="item2" v-for="p in 200" :key="p">{{p}}</div>  
    </div>  
  </div>  
</template>  

<script>  
export default {  
  data: function () {  
    return {  
    }  
  },  
  methods: {  
    scroll () {  
      this.top = this.top ? 0 : 100000  
      uni.pageScrollTo({  
        scrollTop: this.top,  
        duration: 300,  
      })  
    }  
  }  
}  
</script>  

<style lang="scss" scoped>  
.my-app {  
  text-align: center;  
}  
.nav {  
  position: fixed;  
  width: 150px;  
  height: 100vh;  
  overflow: auto;  
  background-color: #ccc;  
}  
.item2 {  
  height: 200px;  
  border: 1px solid #837;  

}  
.item {  
  height: 50px;  
  border: 1px solid #6cf;  
}  

</style>  

操作步骤:
  1. 页面有position: fixed; 或者sticky定位的元素,内部有滚动列表(以下称为导航),
  2. html也是一个列表内容比较长
  3. 固定定位的导航 通过滚动拉到底部(页面此时不滚动),
  4. 点击导航时调用 uni.pageScrollTo (duration不为0),
  5. 在移动端Safari浏览器中表现为 侧边栏出现闪动 抽搐,其他浏览器正常

预期结果:

期望结果

与安卓谷歌表现一致

实际结果:

元素 闪动 抽搐

bug描述:

uni.pageScrollTo 在safari移动端 导致悬浮元素闪屏(稳定重现)

2022-08-26 17:32 负责人:无 分享
已邀请:
违规昵称4396

违规昵称4396

2020年就有人提这个问题。到现在还没解决

要回复问题请先登录注册