Jquery增加鼠标中间功能mousewheel的实例代码


Posted in Javascript onSeptember 05, 2013
(function ($) {
    var types = ['DOMMouseScroll', 'mousewheel'];
    $.event.special.mousewheel = {
        setup: function () {
            if (this.addEventListener) {
                for (var i = types.length; i;) {
                    this.addEventListener(types[--i], handler, false);
                }
            } else {
                this.onmousewheel = handler;
            }
        },
        teardown: function () {
            if (this.removeEventListener) {
                for (var i = types.length; i;) {
                    this.removeEventListener(types[--i], handler, false);
                }
            } else {
                this.onmousewheel = null;
            }
        }
    };
    $.fn.extend({
        mousewheel: function (fn) {
            return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
        },
        unmousewheel: function (fn) {
            return this.unbind("mousewheel", fn);
        }
    });
    function handler(event) {
        var orgEvent = event || window.event, args = [].slice.call(arguments, 1), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
        event = $.event.fix(orgEvent);
        event.type = "mousewheel";
        // Old school scrollwheel delta
        if (event.originalEvent.wheelDelta) { delta = event.originalEvent.wheelDelta / 120; }
        if (event.originalEvent.detail) { delta = -event.originalEvent.detail / 3; }
        // New school multidimensional scroll (touchpads) deltas
        deltaY = delta;
        // Gecko
        if (orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS) {
            deltaY = 0;
            deltaX = -1 * delta;
        }
        // Webkit
        if (orgEvent.wheelDeltaY !== undefined) { deltaY = orgEvent.wheelDeltaY / 120; }
        if (orgEvent.wheelDeltaX !== undefined) { deltaX = -1 * orgEvent.wheelDeltaX / 120; }
        // Add event and delta to the front of the arguments
        args.unshift(event, delta, deltaX, deltaY);
        return $.event.handle.apply(this, args);
    }
})(jQuery);
调用:
$(document).mousewheel(function (e, detail) {
}
Javascript 相关文章推荐
基于jquery的地址栏射击游戏代码
Mar 10 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
Jan 23 Javascript
iframe子父页面调用js函数示例
Nov 07 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
JavaScript中的条件判断语句使用详解
Jun 03 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
Koa代理Http请求的示例代码
Oct 10 Javascript
Vue自定义指令写法与个人理解
Feb 09 Javascript
jquery实现下载图片功能
Jul 18 jQuery
解决layer弹出层msg的文字不显示的问题
Sep 11 Javascript
详解 TypeScript 枚举类型
Nov 02 Javascript
jQuery关于导航条背景切换效果实现示例
Sep 04 #Javascript
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 #Javascript
JS如何将UTC格式时间转本地格式
Sep 04 #Javascript
js 窗口抖动示例
Sep 04 #Javascript
js格式化货币数据实现代码
Sep 04 #Javascript
jQuery父级以及同级元素查找介绍
Sep 04 #Javascript
jquery 添加节点的几种方法介绍
Sep 04 #Javascript
You might like
php UTF8 文件的签名问题
2009/10/30 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
Python文件读取的3种方法及路径转义
2015/06/21 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
python实现图片批量压缩程序
2018/07/23 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
Python 函数返回值的示例代码
2019/03/11 Python
python实现ip地址的包含关系判断
2020/02/07 Python
opencv+python实现均值滤波
2020/02/19 Python
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
酒店led欢迎词
2014/01/09 职场文书
单位单身证明范本
2014/01/11 职场文书
西门豹教学反思
2014/02/04 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技