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详情页
};
ionic 监听页面滚动,点击停止滚动的更多相关文章
- react 监听页面滚动
html: // 如果使用typescript, 定义dom类型 private dom: HTMLDivElement | null // ReactJS中,对Div监听只需要绑定 onScroll ...
- vue中监听页面滚动和监听某元素滚动
①监听页面滚动 在生命周期mounted中进行监听滚动: mounted () { window.addEventListener('scroll', this.scrollToTop) }, 在方法 ...
- jq监听页面的滚动事件,
jQuery监听页面的滚动状态,实现代码: $(document).scroll(function() { var scroH = $(document).scrollTop(); //滚 ...
- vue 中监听页面滚动
监听页面滚动 在methods中定义一个方法 handleScroll() { //获取滚动时的高度 let scrollTop = window.pageYOffset || document.do ...
- 21.JQ的监听事件(点击div外面可以让它消失)
JQ的监听事件(点击div外面可以让它消失) //监听整个页面 $(document).bind("click", function() { //给需要的对象赋予事件 $(&quo ...
- uni-app中不使用scroll-view组件,监听页面滑直底部事件
最终达到的目标效果 将要用到 监听页面滚动事件:onPageScroll 获取节点信息uni.createSelectorQuery() 标签布局 <template> <view ...
- 监听tableview的点击事件
// 监听tablview的点击事件 - (void)addAGesutreRecognizerForYourView { UITapGestureRecognizer *tapGesture = [ ...
- highcharts图表组件入门教程:如何监听柱状图柱子点击事件动态更新当前数据点数值和所对应X轴刻度
highcharts图表组件入门教程:如何监听柱状图柱子点击事件动态更新当前数据点数值和所对应X轴刻度 作者:highcharts | 时间:2014-6-11 14:07:05 | [小 大] | ...
- webview缓存及跳转时截取url地址、监听页面变化
缓存及一些设定 我在做一些项目时,h5做的项目手机浏览器能使用,但是在搬到webview时候不能用,这个时候通过查阅资料,原来是webview没有设定好,包括缓存.缓存大小及路径等等 mWebview ...
随机推荐
- Spring Boot 揭秘与实战 源码分析 - 工作原理剖析
文章目录 1. EnableAutoConfiguration 帮助我们做了什么 2. 配置参数类 – FreeMarkerProperties 3. 自动配置类 – FreeMarkerAutoCo ...
- 2017-2018-2 20165228 实验三《敏捷开发与XP实践》实验报告
2017-2018-2 20165228 实验三<敏捷开发与XP实践>实验报告 相关知识点 (一)敏捷开发与XP 通过 XP准则来表达: 沟通 :XP认为项目成员之间的沟通是项目成功的关键 ...
- 一些Go操作Kafka的问题
1)包的选择 confluent-kafka-go使用了rdkafka的c库,破坏了go代码的收敛,不使用: sarama不支持groud id 的功能,写consumer需要自己管理消费的parti ...
- Oracle查询行对应block_id,file_id
select id,rowid, dbms_rowid.rowid_object(rowid) object#, dbms_rowid.rowid_relative_fno(rowid) file#, ...
- 百练1041-反反复复-2016正式C题
C:反反复复 总时间限制: 1000ms 内存限制: 65536kB 描述 Mo和Larry发明了一种信息加密方法.他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一 ...
- [LeetCode&Python] Problem 788. Rotated Digits
X is a good number if after rotating each digit individually by 180 degrees, we get a valid number t ...
- cell-augmented
https://zhuanlan.zhihu.com/p/33147353 https://blog.csdn.net/thm225679/article/details/79689008 https ...
- 服务器死机 导致 mongo 挂掉
1.删除mongod.lock和mongodb.log日志文件 2.携带参数重新启动 mongod --dbpath=/var/lib/mongo --port=27017 --fork --logp ...
- windows apache "The requested operation has failed" 启动失败
找到失败原因,进入cmd(win+r快捷键,输入cmd)命令行下 进入到你的apache bin目录下: 每个人错误可能不同,根据自己问题去相应改
- Win-Lin双系统重装Windows找回Linux启动
第一系统Windows,第二系统Linux:Ubuntu18.10: 1. 重新安装Windows系统后,使用Ubuntu的安装光盘,或启动U盘启动电脑:2. 选择:Try Ubuntu ;3. 进入 ...