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 相关文章推荐
javascript cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
使用jquery插件实现图片延迟加载技术详细说明
Mar 12 Javascript
javascript面向对象包装类Class封装类库剖析
Jan 24 Javascript
javascript实现动态模态绑定grid过程代码
Sep 22 Javascript
jquery隔行换色效果实现方法
Jan 15 Javascript
js关于命名空间的函数实例
Feb 05 Javascript
js实现兼容IE、Firefox的图片缩放代码
Dec 08 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
js Element Traversal规范中的元素遍历方法
Apr 19 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
Sep 19 Javascript
vue2配置scss的方法步骤
Jun 06 Javascript
vue 获取元素额外生成的data-v-xxx操作
Sep 09 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
apache php模块整合操作指南
2012/11/16 PHP
php操作xml
2013/10/27 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
在Django的通用视图中处理Context的方法
2015/07/21 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python解析含有重复key的json方法
2019/01/22 Python
python redis 删除key脚本的实例
2019/02/19 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
军训的自我鉴定
2013/12/10 职场文书
会计工作心得体会
2014/01/13 职场文书
乡下人家教学反思
2014/02/01 职场文书
网络管理专业求职信
2014/03/15 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
领导视察通讯稿
2015/07/18 职场文书
2016年感恩节寄语
2015/12/07 职场文书
2019新员工心得体会
2019/06/25 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript