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 相关文章推荐
两个DIV等高的JS的实现代码
Dec 23 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
Jun 06 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
May 05 Javascript
AngularJs Dependency Injection(DI,依赖注入)
Sep 02 Javascript
最基础的vue.js双向绑定操作
Aug 23 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
微信小程序实现选项卡效果
Nov 06 Javascript
Vue 理解之白话 getter/setter详解
Apr 16 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
JavaScript canvas实现雪花随机动态飘落
Feb 08 Javascript
vue style width a href动态拼接问题的解决
Aug 07 Javascript
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
基于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
php ci框架验证码实例分析
2013/06/26 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
PHP序列化操作方法分析
2016/09/28 PHP
JS 时间显示效果代码
2009/08/23 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
js实现楼层导航功能
2017/02/23 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
python显示生日是星期几的方法
2015/05/27 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python函数不定长参数使用方法解析
2019/12/14 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
PageFactory设计模式基于python实现
2020/04/14 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
Keras中的两种模型:Sequential和Model用法
2020/06/27 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
追悼会上的答谢词
2014/01/10 职场文书
淘宝客服工作职责
2014/07/11 职场文书
个人委托书
2014/07/31 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
Python 多线程处理任务实例
2021/11/07 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记