better-scroll刷新后才能滑动的解决方案

使用cube-ui时鼠标滚轮无法使用,且老触发无法滑动的bug,我十分困惑,于是分析了scroll组件,发现better-scroll才是关键.

于是我赶紧看了看better-scroll的文档.发现鼠标滚轮是可以开启的.开启之后终于可以愉快的使用鼠标滚轮了.

mouseWheel: true,//开启鼠标滚轮

使用better-scroll,在chrome浏览器测试代码,切换手机模拟器之后,就会出现刷新后才能滑动的"bug".这个问题困扰了我半天,上网搜了很久也没有找到很好的解决方案.

几番测试之后,我怀疑是touch事件没注册导致的,为了验证我的猜想,我把源码下载下来并分析,终于让我找到了解决关键代码,真是皇天不负有心人啊

在 better-scroll 的源码 packages/core/src/base/ActionsHandler.ts 中:

const shouldRegiserTouch = hasTouch && !disableTouch
const sholdRegisterMouse = !disableMouse

这两个是确定是否需要注册触摸事件和鼠标拖动事件的常量.

这里可以进行改动,将其改为变量,判断当前是否为开发环境,如果是开发环境,就把这两个变量都设置为true,就行了

let shouldRegiserTouch = hasTouch && !disableTouch
let sholdRegisterMouse = !disableMouse
if(process.env.NODE_ENV===‘development‘) {
  shouldRegiserTouch = true
  sholdRegisterMouse = true
}

经过测试之后果然行得通,但是总修改源码也不是办法.....

几经周折,我发现其实可以在初始化时对参数进行设置,以下是最终解决方案

new BScroll时,在参数options中加入

mouseWheel: true,//开启鼠标滚轮
disableMouse: false,//启用鼠标拖动
disableTouch: false//启用手指触摸

O(∩_∩)O哈哈~又可以愉快的调试了,妈妈再也不用担心我滑不动屏幕了

原文链接:https://www.cnblogs.com/mldonkey/p/11421577.html

原文地址:https://www.cnblogs.com/mldonkey/p/11421577.html

时间: 2024-10-12 17:08:15

better-scroll刷新后才能滑动的解决方案的相关文章

vue 首次加载缓慢/刷新后加载缓慢 原因及解决方案

# vue 首次加载缓慢/刷新后加载缓慢 原因及解决方案 最近做项目发现一个问题,页面每次刷新后加载速度都非常慢,20s左右,在开发环境则非常流畅,几乎感觉不到,本文参考望山的各种方案优化 1,关闭打包时生成的map文件 在config/index.js文件中讲productionSourceMap设置为false,再次打包便没有了map文件 2,vue-router路由懒加载 懒加载的实现方式有很多种,这里简单说三种实现方法 vue异步组件 import() webpack的require.e

页面刷新vuex数据消失问题解决方案 之 vuex中间件

之前我写了一篇用ES6 Proxy方案解决数据同步的文章 页面刷新vuex数据消失问题解决方案. 今天和同事沟通这个vuex数据还原问题,我说我的方法很奇异.聊着聊着,同事咋不用  store.subscribe , 当时还有点觉得不可能,仔细再去看vuex官方文档. 这个还真的是可行,但当然也是存在不方便的地方的. 此方案现在已经应用我基于vue开发的音乐web app VBOX 上,欢迎大家给star. 基本方案和步骤如下 1. 简单的按照键复制对象 2. localStorage存储的封装

使用MJRefresh遇到的一个问题,上拉刷新后tableview瞬间滑到最底部

最近用MJRefresh上拉刷新时遇到一个问题,就是上拉刷新后,tableview会瞬间滑到最底部,用户还要往回翻才能看到新刷出来的数据,体验十分不好.查了很久没找到原因,最后发现在refreshview停止动画前,我代码里调用了两次tableview reloaddata,抱着尝试的心理,我改了代码结构,删除了一个tableview reloaddata,结果还真被我蒙对了!原因不明,可能是tableview的一个小bug,也可能是我的 MJRefreshView版本太老,是时候更新一下这个第

Oracle案例02——ORA-12034: "SCOTT"."USER_TABLE" 上的实体化视图日志比上次刷新后的内容新

最近同事在交接工作时,发现有几个schedule job没有执行成功,我这边给看了下,其中一个是由于数据库迁移,调用dblink的host主机IP在tnsnames中没有变更导致,还有一个是无法视图的报错,即报错信息如下: 一.错误日志 通过查看schedual job报错日志,具体报错信息如下 ORA-12034:"SCOTT"."USER_TABLE" 上的实体化视图日志比上次刷新后的内容新ORA-06512: 在 "SYS.DBMS_SNAPSHOT

使用sessionStorage解决vuex在页面刷新后数据被清除的问题

https://www.jb51.net/article/138218.htm 1.原因 2.解决方法 localStorage没有时间期限,除非将它移除,sessionStorage即会话,当浏览器关闭时会话结束,有时间期限,具有自行百度 我这里使用sessionStorage,这里需要注意的是vuex中的变量是响应式的,而sessionStorage不是,当你改变vuex中的状态,组件会检测到改变,而sessionStorage就不会了,页面要重新刷新才可以看到改变,所以应让vuex中的状态

函数一直无法立即退出,在等待了大约30s后才能退出(QMulitHash释放不连续的内存需要很长世间,而这样设置局部变量后又无法避免这个问题)

局部变量使用对性能的影响以及进程的堆和栈: 由于在代码中我使用了QMulitHash<QString , LHFilteVersionItem> tmp;这一局部变量来保存某一目录下的文件,由于在写测试代码期间,我利用循环模拟了50万的数据序列化后保存在文件中,在运行期间我发现读取函数耗费很长的时间,而函数里面最耗时的读取操作也只花费了很短的时间,但是函数一直无法立即退出,在等待了大约30s后才能退出,相关代码如下: [cpp] view plain copy void LHTWORKFLOW

最新版本MYSQL官网下载地址但是必须要注册后才能下载

因mysql5.0上执行函数不行,决定安装最新版本的mysql,在网上找了些绿色版的,安装总报1067错误,网上的各种方法都试了,就是不行,浪费时间不说,郁闷死了,最后决定去官网,官网上面有msi安装版和绿色版,必须注册下,才能进行下面的操作.因之前绿色版安装老报1067错,决定使用安装版,但是 进入到MSI下载页面(http://dev.mysql.com/downloads/installer/5.6.html) 发现没有X64关键字,没事,你把下图的第二个mysql-installer-w

移动端输入框只有输入文本后才能点击效果

现在手机端的提交按钮很多都是在输入内容后才能提交的,如图: 这是没有输入文本时的效果,当然 下一步 按钮也是不可点击的 这个是是输入文本后的效果,可以进行下一步的操作 这样做对数据提交的正确性有一定的保护,同时也增加了用户体验.其实实现这样的效果逻辑很简单.代码如下: /*如果输入内容就给提交按钮添加样式并且添加跳转链接*/ var btn = $('buttn') function judge(){ var lenght1 = $('#input1').val().length; var le

转 Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案

今早刚上班.客户打电话过来说系统访问不了,输入用户名.用户号不能加载出来!听到这个问题,第一时间想到的是不是服务器重新启动了,Oracle数据库的相关服务没有启动的原因.查看服务的时候,发现相关的服务都是启动的状态.第二想法就是查看的程序配置文件是否被修改过.也没有异常:第三个就是用PL/SQL连接Oracle数据库,输入登录名和密码后,提示如下错误:ora-01033:oracle initialization or shutdown in progress: 在网上搜索了一圈,终于发现几个比