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 相关文章推荐
js 加载时自动调整图片大小
May 28 Javascript
异步javascript的原理和实现技巧介绍
Nov 08 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
JS求平均值的小例子
Nov 29 Javascript
jquery控制select的text/value值为选中状态
Jun 03 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
Javascript基础教程之比较null和undefined值
May 16 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
Oct 14 Javascript
Bootstrap CSS组件之输入框组
Dec 17 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 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中sprintf与printf函数用法区别解析
2014/02/17 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
js 连接数据库如何操作数据库中的数据
2012/11/23 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
简单了解python中对象的取反运算符
2019/07/01 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
python @classmethod 的使用场合详解
2019/08/23 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Python sorted对list和dict排序
2020/06/09 Python
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
一些关于MySql加速和优化的面试题
2014/01/30 面试题
大一新生军训时的自我评价分享
2013/12/05 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
食品安全工作方案
2014/05/07 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
财务会计实训报告
2014/11/05 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript