在首页时候,使用BetterScroll插件的时候,滚动的时候经常会卡顿。Better-scroll在决定有多少区域可以滚动时,是根据ScrollerHeight属性决定的。ScrollerHeight属性时根据Better-Scroll的content中的子组件的高度。但是,刚开始在计算scrollerHeight属性时,是没有将图片计算在内的。所以计算出来的高度是错误的,后来图片加载进来的时候,即使出现了新的高度,但是ScrollerHeight属性并没有进行更新,才会滚动出现问题。

解决这个问题的话,我们只需要监听每一张图片是否加载完成,只要有一张图片加载完成了,就执行一次refresh()。来稍微解释下refresh函数,其作用为,重新计算 better-scroll,当 DOM 结构发生变化的时候务必要调用确保滚动的效果正常。监听图片的加载完成的话,只需要在goodsitem中的img中,使用@load进行监听。而goodsitem与home并不属于父子组件关系。而如果在这里使用,vuex,又感觉过于杂糅,因此在这里使用了事件总线。

首先,先记录下Vue事件总线的使用方法,现在main.js中创建$bus,这样即可全局使用,那么我们在main.js中首先加入,如下一行代码:

Vue.prototype.$bus= new Vue()

之后,在需要传出的goodsitem中,对其img进行监听,且使用事件总线传出:

<template>
<div class="goodsitem">
<img :src="goodsitem.show.img" @load="imageload">
</div>
</template> <script>
export default {
name: "goodsitem",
methods:{
imageload(){
this.$bus.$emit("itemimageload")
}
}
}
</script>

之后,在home.vue中添加如下代码:

mounted() {
//3.监听item中图片加载完成
this.$bus.$on("itemimageload",()=>{
console.log("-----");
this.$refs.scroll.refresh()
})
}

再在scroll.vue中的methods里面如下处理即可:

methods:{
refresh(){
// console.log("----1----");
this.scroll.refresh()
}
}

解决首页中Better-scroll可滚动区域的问题的更多相关文章

  1. 解决iPhone中overflow:scroll;滑动速度慢或者卡的问题

    在移动端html中经常出现横向/纵向滚动的效果,但是在iPhone中滚动速度很慢,感觉不流畅,有种卡卡的感觉,但是在安卓设备上没有这种感觉; 要解决这个问题很简单: 一行代码搞定 -webkit-ov ...

  2. 解决vs2013中MVC/WebApi不显示添加区域菜单选项

    在构建项目过程中,安装各种package或者卸载的过程中,导致了添加区域菜单选项不显示,导致后面无法添加区域. 在网上查找各种资料,发现原来是工程文件(项目名.csproj)缺少mvc引用. 工程文件 ...

  3. 全面理解iOS开发中的Scroll View[转]

    from:http://mobile.51cto.com/hot-430409.htm 可能你很难相信,UIScrollView和一个标准的UIView差异并不大,scroll view确实会多一些方 ...

  4. 完美解决,浏览器下拉显示网址问题 | 完美解决,使用原生 scroll 写下拉刷新

    在 web 开发过程中我们经常遇到,不想让用户下拉看到我的地址,也有时候在 div 中没有惯性滚动,就此也出了 iScroll 这种关于滚动条的框架,但是就为了一个体验去使用一个框架好像又不值得,今天 ...

  5. geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题

    Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 问题探索 采样说明 实现方案 总结 一.前言     ...

  6. m.jd.com首页中的js效果

    m.jd.com中的部分js效果 昨天把m.jd.com的首页布局写好了,今天写一下首页中部分js效果.头部背景色透明度的改变,焦点图轮播,京东快报的小轮播,以及秒杀倒计时.这里html,css样式就 ...

  7. 解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题

    下面两种现象,用同一种方法解决 1.解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题 2.突然有一天首页访问图片很慢,至少隔20多秒所有图片才会出来.(解析:app使 ...

  8. 解决boostrap中,iframe渲染下,苹果手机横向无法显示剩余内容问题

    描述: 问题解决了,采用的手势拖动显示剩余内容,并不是有了横向滚动条 在head标签中加入 <head> <meta charset="utf-8"> &l ...

  9. CSS中overflow:scroll怎么设置只上下滚动而不左右滚动

    CSS中"overflow:scroll"默认是左右,上下都滚动.怎么设置只上下滚动而不左右滚动,下面有个不错的解决方法 CSS中"overflow:scroll&quo ...

随机推荐

  1. pandas入门使用

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  2. 第14.16节 爬虫实战2:赠人玫瑰,手留余香! request+BeautifulSoup实现csdn博文自动点赞

    写在前面:本文仅供参考学习,请勿用作它途,禁止转载! 在<第14.14节 爬虫实战准备:csdn博文点赞过程http请求和响应信息分析>老猿分析了csdn博文点赞处理的http请求和响应报 ...

  3. Javascrip之BOM

    重点内容 理解windows对象-BOM核心 控制窗口.框架.弹出窗口 利用location对象中的页面信息 利用navigator对象了解浏览器 BOM:浏览器对象模型[Browner Object ...

  4. matplotlib 绘制多个图——两种方法

    import numpy as np import matplotlib.pyplot as plt #创建自变量数bai组du x= np.linspace(0,2*np.pi,500) #创建函数 ...

  5. 原生js获取页面所有的checkbox

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. TMOOC 1969 开锁

    update on 2020.2.28 时隔近日重新想这道题,其实复杂度正确的解法是 可持久化 01 Trie. 考虑对于每一个 \(a[i]\),考虑能将它作为最大值的最大包容区间 \([l, r] ...

  7. POI2009 KON-Ticket Inspector

    题目链接 Description 一辆火车依次经过 \(n\) 个车站,顺序是 \(1, 2, 3, ..., n - 1, n\).给定 \(A_{i, j}\) 表示从 \(i\) 站上车,\(j ...

  8. Android开源项目分类汇总-转载

    太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参 ...

  9. STL——容器(Map & multimap)的查找

    map.find(key);   //查找键key是否存在,若存在,返回该键的元素的迭代器:若不存在,返回map.end(); map.count(key);   //返回容器中键值为key的对组个数 ...

  10. 1、MyCat入门

    1.Mycat简介 [1].Mycat是什么 Mycat 是数据库中间件 [2].why使用Mycat ①.Java与数据库紧耦合 ②.高访问量高并发对数据库的压力 ③.读写请求数据不一致 [3].数 ...