效果预览:

github:

https://besswang.github.io/webapp-scroll/

参考地址:

http://www.ghugo.com/special-scroll-events-for-jquery/

javascript里有一个事件是滚动事件,只要拖动滚动条,就会触发事件。

用jquery的话,这个事件scroll 可以查看jquery api :http://api.jquery.com/scroll/

但scroll 事件有一个缺陷,就是只能判断滚动条滚动,而不能监控滚动条停止滚动时的事件。

现用jquery扩展一下scroll 事件,新增

不多说,直接上代码实在点。

(function(){

    var special = jQuery.event.special,
uid1 = 'D' + (+new Date()),
uid2 = 'D' + (+new Date() + 1); special.scrollstart = {
setup: function() { var timer,
handler = function(evt) { var _self = this,
_args = arguments; if (timer) {
clearTimeout(timer);
} else {
evt.type = 'scrollstart';
jQuery.event.handle.apply(_self, _args);
} timer = setTimeout( function(){
timer = null;
}, special.scrollstop.latency); }; jQuery(this).bind('scroll', handler).data(uid1, handler); },
teardown: function(){
jQuery(this).unbind( 'scroll', jQuery(this).data(uid1) );
}
}; special.scrollstop = {
latency: 300,
setup: function() { var timer,
handler = function(evt) { var _self = this,
_args = arguments; if (timer) {
clearTimeout(timer);
} timer = setTimeout( function(){ timer = null;
evt.type = 'scrollstop';
jQuery.event.handle.apply(_self, _args); }, special.scrollstop.latency); }; jQuery(this).bind('scroll', handler).data(uid2, handler); },
teardown: function() {
jQuery(this).unbind( 'scroll', jQuery(this).data(uid2) );
}
}; })();

可以将上面代码保存到一个文件,这相当于一个插件,呵呵。调用方法如下:

(function(){
jQuery(window).bind('scrollstart', function(){
console.log("start");
}); jQuery(window).bind('scrollstop', function(e){
console.log("end");
}); })();

注意:如果是用高级版本的jquery(如1.9)的话需要将handle改为dispatch

扩展jquery scroll事件,支持 scroll start 和 scroll stop的更多相关文章

  1. “如何稀释scroll事件”引出的问题

    背景:我在segmentfault提了个问题如何稀释onscroll事件,问题如下: 面试时问到这个问题,是这样的:    面试官问一个关于滚动到某个位置的时候出现一个顶部的导航栏,答完之后,她接着问 ...

  2. jQuery scroll事件实现监控滚动条分页示例(转)

    这篇文章主要介绍了jQuery scroll事件实现监控滚动条分页简单示例,使用ajax加载,同时介绍了(document).height()与$(window).height()的区别,需要的朋友可 ...

  3. JQUERY 滚动 scroll事件老忘记 标记下

    制作笔记 这个scroll事件 老忘记.... 写的太垃圾了  希望有路过的大神指点的吧~ 这个貌似应该写个函数里 调用好些的吧~  写个类这样的 也方便扩展貌似  不过就是想想  ~ $(windo ...

  4. jQuery scroll事件

    scroll事件适用于window对象,但也可滚动iframe框架与CSS overflow属性设置为scroll的元素. $(document).ready(function () { //本人习惯 ...

  5. 关于如何绑定Jquery 的scroll事件(兼容浏览器 Wookmark瀑布流插件)

    做一个随屏幕滚动的导航条时,发现一个问题: 火狐.谷歌.ie9正常,ie8.7.6页面滚动时,导航条没有反应. 代码如下: $(document).bind("scroll",fu ...

  6. 前端资讯周报 3.13 - 3.19: WebVR来了!以及如何优化scroll事件性能

    每周一我都会分享上一周我订阅的技术站点中,和解决问题的过程中阅读到的值得分享的文章.这是迫使我学习的一个动力 本周推荐 Minecraft in WebVR with HTML Using A-Fra ...

  7. JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾

    页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...

  8. jquery扩展鼠标mousewheel事件

    最近项目中要有个鼠标在图片上滚动实现图片放大和缩小的得到功能,隐约的记得好像记得有个 mousewheel 事件,可以实现需求,于是乎,开始在网上查找这一方法,但是,出乎意料的结果,各浏览器对此方法有 ...

  9. javascript中的scroll事件

    window.addEventListener('scroll',function(){ if(document.compatMode == "CSS1Compat") { ale ...

随机推荐

  1. dbcp2连接池获取数据库连接Connection

    一.先来看看手工创建的方式 public static Connection getConnection() { Connection conn = null; try { Class.forName ...

  2. 如何运行Struts2官网最新Demo?

    本篇将讲述下如何运行官网当前最新Struts2.5.10.1 版本的Demo. Struts2 官网:http://struts.apache.org/ 0x00 Demo下载 Struts2 官网2 ...

  3. atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js

    atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js 1. 图片按钮的效果总结 1 1.1. 按钮图片自动缩放的. 1 1.2. 不要 ...

  4. Objective-C函数重载规则

    是按照函数标签是否重复来判断是否为一个重载函数的.

  5. android.animation(2) - ValueAnimator的 Interpolator 和 Evaluator

    一.插值器 插值器,也叫加速器:有关插值器的知识,我在<Animation动画详解(二)——Interpolator插值器>中专门讲过,大家可以先看看这篇文章中各个加速器的效果.这里再讲一 ...

  6. Windows Phone 推送通知的第四类推送

    在 MSDN 文档有关 Windows Phone 推送通知 有关推送的内容包含 Tile.Toast.Raw 这三种通知.这三种通知 的方式类似,运用的场合不同,这里不再赘述,它们的运行原理类似: ...

  7. Django QuerySet 方法梳理 。model外键 多对多的保存

    引用:https://feifeiyum.github.io/2017/03/28/python-django-queryset/ 说明 Models 层是 Django 框架中最强大的部分之一, 大 ...

  8. jquery easy ui 验证框架

    引入参考最下面API ) var reg = /^1[3|4|5|8|9]\d{9}$/; return reg.test(value); }, message: '输入手机号码格式不准确.' } } ...

  9. git学习(二):git config命令

    不同的git config操作不同的参数文件 git config --global // 配置用户目录下的.gitconfig那文件 git config --system // 配置系统级配置文件 ...

  10. 分析HTML5中WebSocket的原理

    目录结构   一.什么是Websocket websocket是html5提出的一个协议规范,参考rfc6455. 不过目前还都是在草案,没有成为标准,毕竟html5还在路上. websocket约定 ...