移动端H5页面惯性滑动监听

  在移动端,当你快速滑动有滚动条的页面时,在你手指离开屏幕时,滚动并不会立即停止,而是会随着“惯性”继续滑动一段距离。

  在做项目的过程中,需要监听惯性滑动整个过程。在网上并没有找到相应的监听事件,于是就自己写了一个监听方法。

  惯性滚动开始时调用的方法是listenSlidingA,结束时调用的方法是listenSlidingEndA。

 <!DOCTYPE html>
<html>
<head>
<title>滚动监听</title>
<style type="text/css">
.scoll-x-window{
height: 900px;
width: 600px;
overflow-x:auto;
overflow-y:hidden;
border:1px solid black;
}
.scoll-x-base{
position:relative;
height:96%;
top:2%;
width:4800px;
overflow-x:hidden;
overflow-y:auto;
}
.scoll-x-panl{
position:relative;
width: 590px;
margin-right: 10px;
height: 100%;
float: left;
background-color: orange;
}
</style>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
var pageInfo ={};//页面数据记录
$(document).on("touchend",".scoll-x-panl",listenSlidingA); function listenSlidingA(){
listenSlidingCore("SCOLL_X_WINDOW","listenSlidingEndA()");
} /**
* 监听滚动核心事件
* windowId:滚动的窗口,callBackFun:回调方法
*/
function listenSlidingCore(windowId,callBackFun){
pageInfo.scollWidth = $("#" + windowId ).scrollLeft();
//一次滚动只会触发一次位置纠正,所以要覆盖掉上一次延时任务
clearTimeout(pageInfo.timeoutListener);
pageInfo.timeoutListener = setTimeout(function(){
if(pageInfo.scollWidth == $("#" + windowId ).scrollLeft()){
try{
eval(callBackFun);
}catch(e){
console.log("出错了:" + e);
}
}else{
listenSlidingCore(windowId,callBackFun);
}
}, 100);
} function listenSlidingEndA(){
console.log("执行到了回调函数:listenSlidingEndA");
}
</script>
</head>
<body>
<div class="scoll-x-window" id="SCOLL_X_WINDOW">
<div class="scoll-x-base" >
<div class="scoll-x-panl"></div>
<div class="scoll-x-panl"></div>
<div class="scoll-x-panl"></div>
<div class="scoll-x-panl"></div>
<div class="scoll-x-panl"></div>
<div class="scoll-x-panl"></div>
<div class="scoll-x-panl"></div>
<div class="scoll-x-panl"></div>
</div>
</div>
</body>
</html>

  该方法是实现 面板滚动中的一个步骤,面板滚动的过程是 1:监听面板的滑动(包括惯性滑动)2:滑动停止后修正面板位置,将最近的面板居中3:高亮底部相应的快捷链接。若你有面板滚动中的相关疑问,欢迎留言交流


  转载请注明出处:http://www.cnblogs.com/ttjsndx/p/8251593.html

移动端H5页面惯性滑动监听的更多相关文章

  1. 完美解决移动端H5页面的滑动穿透问题

    同事的分享,记录下来. 代码如下: css: body.modal-open { position: fixed; width: 100%; } js: // 兼容低版本 document.scrol ...

  2. 移动端H5页面高清多屏适配方案

    背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范 ...

  3. 使用swipecard实现卡片视图左右滑动监听以及点击监听

     前言: 大家好,今天给大家介绍安卓一种特别实用有很酷炫的组件swipecard,当然这并不是安卓爸爸创造的,这是国内的一个我认为是大牛的一个人随便写着玩儿搞出来了,我看了他的代码介绍已经很清晰了,但 ...

  4. 移动端H5页面的设计稿尺寸大小规范-转载自http://www.chinaz.com/design/2015/1103/465670.shtml

    机屏幕尺寸,设计稿应该按照哪一个尺寸作为标准尺寸.现在已经有2K分辨率的手机屏幕了,设计稿是不是也要把宽高跟着最大分辨率来设计.显然不是. 请注意:(以下所有讨论内容和规范均将viewport设定为c ...

  5. [转]:移动端H5页面高清多屏适配方案

    原文链接:http://www.tuicool.com/articles/YJviea 背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们 ...

  6. 移动端(IOS)iframe监听不到 onscroll 事件

    问题描述: 我在一个页面A中有瀑布流,点击瀑布流中的图片需要进入到另外一个页面B,点击返回需要回到页面A中点击的位置,为了实现该效果所以在页面A中嵌入iframe,iframe指向页面B,页面B中同样 ...

  7. Listview的OnScrollListener的滑动监听实现分页加载

    //---------------主布局文件---------------------------- <ListView android:layout_width="fill_pare ...

  8. 移动端h5页面的设计稿尺寸

    当我们在做手机端H5网页设计稿时(当然包含微信端的H5网页设计),如果没有做过类似的移动端的设计,UI设计师和前端工程师肯定会纠结的.如果是app设计师,就不会那么纠结啦. 延伸阅读: 2015年度最 ...

  9. 教你如何用 lib-flexible 实现移动端H5页面适配

    前话 好久没写教程了(可能会误导新手的菜鸟教程( ̄▽ ̄)"). 这是我的github,欢迎前端大大们和我一起学习交流 https://github.com/pwcong 最近入职公司做前端实 ...

随机推荐

  1. LintCode-落单的数 III

    给出2*n + 2个的数字.除当中两个数字之外其它每一个数字均出现两次,找到这两个数字. 您在真实的面试中是否遇到过这个题? Yes 例子 给出 [1,2,2,3,4,4,5,3].返回 1和5 挑战 ...

  2. javaWeb中URLEncoder.encode空格问题

    近期开发一个在线坐席的功能.发现推送的消息中空格变成了+ .查询发现URLEncoder.encode的问题.曾经用的时候也没注意过,解决的方法网上是对URLEncoder.encode的之后的字符串 ...

  3. Android中使用ContentProvider进行跨进程方法调用

    原文同一时候发表在我的博客 点我进入还能看到很多其它 需求背景 近期接到这样一个需求,须要和别的 App 进行联动交互,比方下载器 App 和桌面 App 进行联动.桌面的 App 能直接显示下载器 ...

  4. 海量日志采集系统flume架构与原理

    1.Flume概念 flume是分布式日志收集系统,将各个服务器的数据收集起来并发送到指定地方. Flume是Cloudera提供的一个高可用.高可靠.分布式的海量日志采集.聚合和传输的系统.Flum ...

  5. mysql中对字符集和校对规则的认识

    字符集:指符号和字符编码的集合.校对规则:比较字符编码的方式.GBK2312:主要包括简体中文字符及常用符号,对于中文字符采用双字节编码的格式,也就是说一个汉字字符在存储占两个字节.GBK:包括有中. ...

  6. 详细:idea如何设置类头注释和方法注释

    IntelliJ IDEA 类注释和自定义方法注释   来源:https://my.oschina.net/baishi/blog/617478#navbar-header intellj idea的 ...

  7. 配置程序成为Linux服务

    最近写了个程序需要随Linux启动时自动运行起来, 查了一些方法后, 通过配置程序成为系统的服务实现了这个需求, 在此记录一下. 测试程序 #! /bin/sh while [ true ] do e ...

  8. list.add(),向List集合插入对象报空指针异常

    开始的时候我没有判断添加的随想是否为空,直接add;后来加了一个判断,判断了对象不等于空,但是运行程序还是报空指针,这时我发现应该是List出问题了: 查了下资料,发现我初始化List方法不对,如果只 ...

  9. iOS 电脑新装的系统, 使用sourceTree 创建本地仓库的时候, 总是提示, 无效路径

    把qq聊天记录分享出来: 我电脑新装的系统, 使用sourceTree 创建本地仓库的时候, 总是提示, 无效路径请问哪位遇到过求指教群里有产品经理没有? ssh 配制的不对重装系统过后,重新生成一下 ...

  10. 1_3 C语言解决求n!

    求n!(n为键盘输入的任意整数值).要求分别用while语句和for语句实现 用while语句实现: #include <stdio.h> int main() { int n; scan ...