您现在的位置是:网站首页>软件开发>开发终端>uni-appuni-app

bscroll购物车面板打开关闭后,bacroll不再可滑动的解决方案

风口下的猪2020-09-01uni-app

简介

 错题症状

bscroll购物车面板打开关闭后,bacroll不再可滑动

 错题分析

bscroll组件用的v-show,而bscroll的初始化则在页面的mounted后执行。当v-show关闭后,整体页面其实已经渲染完成,而此时bscroll组件再次打开却没有触发bscroll渲染

 错题解决方案

使用watch监听打开关闭阀值,当阀值为开时重新渲染bscroll

watch:{
"cart.isopen":{//这里不用mounted是因为isopen导致面板隐藏后bscroll失效
handler: function(val) {
if(val){
this.updatekey=this.updatekey+1;
this.$nextTick(()=>{
setTimeout(()=>{
new BS('.panel-content', {
    scrollX: false,
    scrollY:true,
    momentum: true,
    useTransition:false,
    click: true,
    tap:true,
preventDefault: true,
stopPropagation: true
});
},500);
});
}
},
}
},

至此,每次打开购物车面板,里面的商品列表便可以滑动。但是数量加减会随着bscroll渲染次数而改变(此时页面存在多个bscroll视图),所以要每次打开购物车面板时强制渲染释放之前的bscroll。

这里采用的方法是key-changeing

<view class="panel-content" :key="updatekey">
watch:{
"cart.isopen":{//这里不用mounted是因为isopen导致面板隐藏后bscroll失效
handler: function(val) {
if(val){
this.updatekey=this.updatekey+1;
                               }
                        }
                }
}




很赞哦! (0)

  • 软件开发
  • 素质要求
  • 计算机基础
  • 架构
  • 安全
  • 性能
  • 运维
  • 尾页
  • 数据库
  • 开发终端
  • 语言基础
  • 项目管理
  • 产品设计
  • 系统
  • 工作规范
  • 计算机网络
  • 前端技术栈
  • 数据结构
  • 计算机组成原理
  • 后端技术栈
  • 性能优化
  • 安全设计
  • 常见模块
  • 计算机操作系统
  • 服务器
  • python
  • MySQL
  • thinkphp
  • PHP
  • Java
  • JavaScript
  • Windows
  • Linux
  • 特效
  • indexedDB
  • vue
  • 淘宝联盟
  • Ionic
  • Angular
  • 微信小程序
  • 支付宝小程序
  • uni-app
  • css/sass/less
  • 支付
  • socket
  • 爬虫
  • web性能优化
  • 消息推送
  • CVM
  • sqlite
  • Redis
  • 前端基础
  • 基础
  • element
  • Nginx
  • yii2
  • /ponder/index.php/index/catelist/catelist/cateid/10.html

    相关阅读 (同一栏目)

    << /

    标签云

    站点信息

    • 文章统计:528篇
    • 移动端访问:扫码进入SQ3R