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 相关文章推荐
Jquery 表格合并的问题分享
Sep 17 Javascript
JavaScript基础语法让人疑惑的地方小结
May 23 Javascript
javascript实现跳转菜单的具体方法
Jul 05 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
用javascript实现自动输出网页文本
Jul 30 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
Nov 18 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
Jul 22 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
Aug 08 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
一个简单的PHP验证码实现代码
2014/05/10 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
使用Python的PEAK来适配协议的教程
2015/04/14 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
Python selenium自动化测试模型图解
2020/04/15 Python
通俗讲解python 装饰器
2020/09/07 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
后勤服务中心总经理工作职责
2014/03/03 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
交通安全责任书范本
2014/07/24 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
介绍一下28个JS常用数组方法
2022/05/06 Javascript