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
Jun 19 Javascript
js 函数的副作用分析
Aug 23 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
jQuery获取和设置表单元素的方法
Feb 14 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
May 29 Javascript
理解和运用JavaScript的闭包机制
Aug 13 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
jQuery UI Bootstrap是什么?
Jun 17 Javascript
如何获取TypeScript的声明文件.d.ts
May 01 Javascript
JS字符串与二进制的相互转化实例代码详解
Jun 28 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
Dec 04 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
php模拟post提交数据的方法
2015/02/12 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
python生成验证码图片代码分享
2016/01/28 Python
详解Python多线程
2016/11/14 Python
python开发简易版在线音乐播放器
2017/03/03 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
重阳节登山活动方案
2014/02/03 职场文书
会计岗位说明书
2014/07/29 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP