鼠标滑轮滚动事件

var wheel = function(event) {
            var delta = 0;
            console.log(event);
            if (!event) /* For IE. */
                event = window.event;
            if (event.wheelDelta) { /* IE/Opera/Chrome. 鼠标向上滑 120*/
                delta = event.wheelDelta / 120;
            } else if (event.detail) {
                /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3. 鼠标向上滑为 -3 为了统一正负号(方向)
                 */
                delta = -event.detail / 3;
            }
            /** If delta is nonzero, handle it.
             * Basically, delta is now positive if wheel was scrolled up,
             * and negative, if wheel was scrolled down.
             */
            if (delta)
                handle(delta);
            /** Prevent default actions caused by mouse wheel.
             * That might be ugly, but we handle scrolls somehow
             * anyway, so don‘t bother here..
             */
            if (event.preventDefault)
                event.preventDefault();
            event.returnValue = false;
        }  

        /** Initialization code.
         * If you use your own event management code, change it as required.
         */
        if (window.addEventListener) {
            /** DOMMouseScroll is for mozilla. */
            window.addEventListener(‘DOMMouseScroll‘, wheel, false);
        }
        /** IE/Opera. */
        window.onmousewheel = document.onmousewheel = wheel;  

        /** This is high-level function.
         * It must react to delta being more/less than zero.
         */
        var handle = function(delta) {  

            if (delta < 0) {
                 alert("鼠标滑轮向下滚动:" + delta + "次!"); // 1
                return;
            } else {
                alert("鼠标滑轮向上滚动:" + delta + "次!"); // -1
                return;
            }
        }
function mousewheel(ev){
    var oEvent=ev||event;
    var dir=true;
    if(oEvent.wheelDelta){
         console.log("wheelDelta:"+oEvent.wheelDelta);
          dir=oEvent.wheelDelta>0?true:false;
          //向上滚动为120
         //向下滚动为-120
    }else{
        //火狐的event.detail向下滑为正数,值与其他浏览器相反
        console.log("detail:"+oEvent.wheelDelta);
         dir=oEvent.detail<0?true:false;
         //向上滚动为-3
        //向下滚动为3
    }
    //根据手表方向设定具体业务逻辑
    if(dir){
      oBox.style.height=oBox.offsetHeight-10+‘px‘;
    }else{
      oBox.style.height=oBox.offsetHeight+10+‘px‘;
    }
    // addEventLisrener 绑定的时间需要通过event对象下面的的 preventDefaul
    if(oEvent.preventDefault){
      oEvent.preventDefault();
    }
    return false;//阻止默认行为(阻止的是 obj.on时间名称=fn 所触发的默认行为)

}

//添加事件 ie chrome
  document.onmousewheel=mousewheel;
  if(document.addEventListener){
    //火狐 chrome
    document.addEventListener(‘DOMMouseScroll‘,mousewheel,false);
  }
时间: 2024-10-26 15:36:35

鼠标滑轮滚动事件的相关文章

js-实现鼠标滑轮滚动实现换页

html页面: 1 <!--首页一--> 2 <div id="nav_div1"> <div class="nav_size"></div> </div> 3 4 <!--首页二--> 5 <div id="nav_div2"></div> 6 7 <!--首页三--> 8 <div id="nav_div3"&

JS禁用和启用鼠标滚轮滚动事件

// left: 37, up: 38, right: 39, down: 40, // spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36 var keys = [37, 38, 39, 40]; function preventDefault(e) { e = e || window.event; if (e.preventDefault) e.preventDefault(); e.returnValue = false; }

js 滑动鼠标滑轮翻页

今天项目中用到了通过滑动鼠标滑轮触发事件,再网上找了一些例子,在FireFox下面使用正常,但是在IE和Google等浏览器下使用滑动一次滑轮却触发了两次事件,网上找了一些解决方案,最后选择了一个简单的解决方案,如果在使用的过程中出现问题,我会继续改进. <script type="text/javascript"> $(document).ready(function(){ var flag = true; /*鼠标滑轮滚动事件的处理*/ var scrollFunc=f

给鼠标滚轮绑定滚动事件

var scrollFunc = function (e) { var direct = 0; e = e || window.event; if (e.wheelDelta) { //判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) { //当滑轮向上滚动时 $("#footer").hide(); } if (e.wheelDelta < 0) { //当滑轮向下滚动时 /* $("#footer").show();*/ }

js给页面添加滚动事件并判断滚动方向

<script> var scrollFunc = function (e) { var direct = 0; e = e || window.event; if (e.wheelDelta) { //判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) { //当滑轮向上滚动时 alert("滑轮向上滚动"); } if (e.wheelDelta < 0) { //当滑轮向下滚动时 alert("滑轮向下滚动");

js监听网页页面滑动滚动事件,实现导航栏自动显示或隐藏

/** * 页面滑动滚动事件 * @param e *///0为隐藏,1为显示var s = 1; function scrollFunc(e) { // e存在就用e不存在就用windon.event e = e || window.event;// 先判断是什么浏览器 if (e.wheelDelta) { // 浏览器IE,谷歌 if (e.wheelDelta > 0) {//当滑轮向上滚动时// console.log("滑轮向上滚动"); if (s == 0) {

javascript滚动条响应鼠标滑轮的实现上下滚动事件

实现鼠标滚动滚轮事件: <script type="text/javascript"> var scrollFunc=function(e){ e=e || window.event; if(e.wheelDelta){//IE/Opera/Chrome if(e.wheelDelta==120) { //向上滚动事件 alert(e.wheelDeta +"向上"); }else { //向上滚动事件 alert(e.wheelDeta +"

javascript滚动栏响应鼠标滑轮的实现上下滚动事件

实现鼠标滚动滚轮事件: <script type="text/javascript"><pre name="code" class="javascript"> var scrollFunc=function(e){ e=e || window.event; if(e.wheelDelta){//IE/Opera/Chrome if(e.wheelDelta==120) { //向上滚动事件 alert(e.wheelDet

设置鼠标滚动事件

当QScrollview内容过多出现滚动条时,此时如果把鼠标移到里面的一个button上并滚动滑轮时,可以看到QScrollview并不会出现滚动的情况,因此我们就需要为button添加一个滚动事件 注:SubTitlePushButton继承于QPushButton,自定义的一个button类,然后在里面添加鼠标滚动事件 bool SubTitlePushButton::event(QEvent *event) { /* if (event->type() == QEvent::Paint)