ionic 监听页面滚动,点击停止滚动
类似今日头条,页面上有很多card,点击每个card跳转该card的详情页面。这里有一个问题,当我滚动页面时,会先后触发touchstart、touchmove、touchend,但是当touchend后,页面仍会因为惯性而继续滚动。这个时候,我想点击页面停止滚动,而不是跳转到某个card的详情页面。
原理很简单:设置一个状态,初始值为true,页面滚动时变为false,页面停止滚动,则恢复为true,只有这个值为true时,才能触发跳转事件,即进入card详情页面。
这里需要用到ionic的一个属性——ionic.scroll.isScrolling。关于这个属性,可以使用on-scroll来测试:
html: ion-content scroll="true" on-scroll="onScroll()"></ion-content>
js: $scope.onScroll = function() {
console.log(ionic.scroll.isScrolling); //可以看到,即使是手指离开屏幕,页面在惯性滚动时,值仍为true
};
代码:
$scope.canGoDetailCard = true; //一开始默认能跳转进card详情页;
//监听touch事件
window.addEventListener('touchstart', function() {
if (ionic.scroll.isScrolling) { //判断页面是否正在滚动
$scope.canGoDetailCard = false; // 如果正在滚动,则点击跳转card详情页失效
ionic.scroll.isScrolling = false; //同时停止滚动;
} else {
$scope.canGoDetailCard = true; //没有滚动时,跳转进入card详情页
}
});
$scope.goDetailCard = function() {
if (!$scope.canGoDetailCard) return; // 如果$scope.canGoDetailCard = false, 则返回
$state.go('card'); //进入card详情页
};
最新文章
- SQL Server 存储(8/8):理解数据文件结构
- Linux 档案与目录管理
- 关于requestFeature() must be called before adding content
- Caffe安装教程(原创)
- HDU 3746 Cyclic Nacklace 环形项链(KMP,循环节)
- 电商ERP如何接入智选物流平台?
- Javascript之计时
- python(五)图形用户界面easyGUI入门
- winows8.1或winows7 64bit 安装Itunes 64bit 11.1.3 无法打开一直停止工作的解决办法
- Java socket 说明 以及web 出现java.net.SocketException:(Connection reset或者Connectreset by peer:Socket write error)的解释
- 完整导出IntelliJ IDEA的快捷键
- Bounce 弹飞绵羊
- c# 添加了按钮双击事件后,再删除掉代码会提示错误
- 每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作
- 企业级Tomcat部署实践及安全调优
- 报Cannot change version of project facet Dynamic web module to 2.5 错误
- 948. Bag of Tokens
- Fedora 25-64位操作系统中安装配置Hyperledger Fabric过程
- Elasticsearch Query DSL 整理总结(四)—— Multi Match Query
- Linux内核分析— —进程的切换和系统的一般执行过程