javascript滚轮事件基础实例讲解(37)


Posted in Javascript onFebruary 14, 2017

本文实例为大家分享了js滚轮事件的具体代码,供大家参考,具体内容如下

<html> 
  <head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <style type="text/css"> 
      #box1{ 
        width: 100px; 
        height: 100px; 
        background-color: red; 
      } 
       
    </style> 
     
    <script type="text/javascript"> 
       
      window.onload = function(){ 
         
        //使div可以跟随鼠标滚轮滚动来改变高度 
        //滚轮向下滚,div变高 滚轮向上滚 div变短 
         
        //获取box1 
        var box1 = document.getElementById("box1"); 
         
        /* 
         * onmousewheel 
         * - 鼠标滚轮滚动的事件,但是该事件火狐浏览器并不支持 
         * - 在火狐中需要使用DOMMouseScroll,这个事件只能通过addEventListener()来绑定 
         */ 
        //为box1绑定一个鼠标滚轮滚动的事件 
        box1.onmousewheel = function(event){ 
          event = event || window.event; 
           
          //判断滚轮滚动的方向 
          /* 
           * wheelDelta 
           * - 事件对象中的属性,可以用来判断鼠标滚轮滚动的方向 
           * - 向下滚 -120 向上滚 +120 
           * - 该属性的值并不重要,重要的是值的符号,需要通过符号来判断滚动的方向 
           * - 但是该属性火狐浏览器并不支持 
           */ 
          //alert(event.wheelDelta); 
           
          /* 
           * 火狐中通过detail来判断方向 
           * - 向上滚 -3  向下滚 +3 
           */ 
          //alert(event.detail); 
           
          if(event.wheelDelta < 0 || event.detail > 0){ 
            //向下滚 
            //增加box1的高度 
            box1.style.height = box1.offsetHeight + 10 + "px"; 
             
          }else{ 
            //向上滚 
            //减小box1的高度 
            box1.style.height = box1.offsetHeight - 10 + "px"; 
          } 
           
           
          /* 
           * 使用addEventListener()绑定的事件,不能通过return false来取消默认行为 
           * 需要调用事件对象 preventDefault()方法来取消默认行为 
           * 但是在IE8中没有该方法 
           */ 
          event.preventDefault && event.preventDefault(); 
           
          //当页面中有滚动条时,由于滚轮滚动的默认行为会导致页面整体下移 
          //取消默认行为 
          return false; 
           
        }; 
         
        bind(box1 , "DOMMouseScroll" , box1.onmousewheel); 
         
         
      }; 
       
      function bind(obj , eventStr , callback){ 
         
        if(obj.addEventListener){ 
          //如果是正常浏览器 
          obj.addEventListener(eventStr , callback , false); 
        }else{ 
          //IE8 
          obj.attachEvent("on"+eventStr , function(){ 
            callback.call(obj); 
          }); 
        } 
      } 
       
    </script> 
  </head> 
  <body style="height: 3000px;"> 
     
    <div id="box1"></div> 
     
     
  </body> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
js浮点数精确计算(加、减、乘、除)
Dec 26 Javascript
javascript匿名函数应用示例介绍
Mar 07 Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
Sep 16 Javascript
解决WordPress使用CDN后博文无法评论的错误
Dec 15 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
May 16 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 Javascript
详解vue.js全局组件和局部组件
Apr 10 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
Apr 26 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 Javascript
解决vue-loader加载不上的问题
Oct 21 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 #Javascript
javascript事件的绑定基础实例讲解(34)
Feb 14 #Javascript
javascript深拷贝和浅拷贝详解
Feb 14 #Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 #Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 #Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 #Javascript
js基于myFocus实现轮播图效果
Feb 14 #Javascript
You might like
一个多文件上传的例子(原创)
2006/10/09 PHP
杏林同学录(一)
2006/10/09 PHP
php在线打包程序源码
2008/07/27 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
php mysql 封装类实例代码
2016/09/18 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
值得分享的bootstrap table实例
2016/09/22 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
跟老齐学Python之Python文档
2014/10/10 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
python sorted方法和列表使用解析
2019/11/18 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
采购部部门职责
2013/12/15 职场文书
执行总经理岗位职责
2014/02/03 职场文书
詹天佑教学反思
2014/04/30 职场文书
党员个人对照检查材料
2014/10/01 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
Springboot中如何自动转JSON输出
2022/06/16 Java/Android
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS